首页 > 其他分享 >爬虫之下载青春有你第二季图片

爬虫之下载青春有你第二季图片

时间:2023-12-04 10:22:35浏览次数:45  
标签:star headers text print tds 爬虫 青春 第二季 find

爬虫之下载青春有你第二季图片
  工具:PyCharm 2022.2.4    python版本:3.9,一个很好的练手项目   1、写一个python类 并方法如下      注意:里面的路径要根据自己实际情况,写成自己的   

import requests
from bs4 import BeautifulSoup
import os
import datetime
import json
import chardet


class TangJingLin:
# 获取当前时间年月日
today = datetime.datetime.now().strftime("%Y%m%d")

'''
定义爬虫函数
'''

def crawl_young(self):

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}
url = 'https://baike.baidu.com/item/青春有你第二季'
try:
response = requests.get(url, headers=headers)
# encoding = chardet.detect(response.text)['encoding']
# response.encoding = encoding
# print(response.text)
# 将一段文档传入BeautifulSoup的构造方法,就能得到一个文档的对象, 可以传入一段字符串
soup = BeautifulSoup(response.text, 'lxml')
# print(soup)
# 返回的是class为table-view log-set-param的<table>所有标签
tables = soup.find('div', {'data-uuid': 'gny2nzwxeh'}).find_all('table', {'class': 'tableBox_VTdNB'})
return tables
except Exception as e:
print(e)

'''
解析获取的数据
'''

def parseData(self):
bs = BeautifulSoup(str(self.crawl_young()), 'lxml')
all_trs = bs.find_all('tr')
# 定义一个数组,用来存放结果
stars = []

for i in all_trs[1:]:
all_tds = i.find_all('td')
star = {}
# 姓名
star["name"] = all_tds[0].text
# 个人百度百科链接
if (all_tds[0].find('a')):
star["link"] = 'https://baike.baidu.com' + all_tds[0].find('a').get('href')
else:
star["link"] = ''
# 籍贯
star["zone"] = all_tds[1].text
# 星座
star["constellation"] = all_tds[2].text
# 花语
star["huayu"] = all_tds[3].text
# 经济公司
star["ssCom"] = all_tds[4].text
stars.append(star)
try:
with open('C:/Users/Administrator/Desktop/qaws/' + self.today + '.json', 'w', encoding='UTF-8') as f:
json.dump(stars, f, ensure_ascii=False)
print("写入成功")
except Exception as e:
print(e)

'''
获取图片链接
'''
def craw_pic(self):
with open('C:/Users/Administrator/Desktop/qaws/' + self.today + '.json', 'r', encoding='UTF-8') as f:
json_array = json.loads(f.read())
pics = []
for i in json_array:
dics = {}
name = i['name']
link = i['link']
if (i is not None and i != ''):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
# 如果不加这个会有百度验证
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,'
'*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
}
try:
response = requests.get(link, headers=headers)
bs = BeautifulSoup(response.content, 'lxml')
imm = bs.find('div', {'id': 'J-lemma-main-wrapper'}).find_all("img")
if imm:
img = imm[0].get('src')
dics["name"] = name
dics["img"] = img
pics.append(dics)
except Exception as e:
print(e)
return pics

'''
根据链接下载图片
'''
def downPicByUrl(self):
pics = self.craw_pic()
os.mkdir("C:/Users/Administrator/Desktop/qaws/xuanshou/")
try:
for pic in pics:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
# 如果不加这个会有百度验证
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,'
'*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
}
pi = requests.get(url=pic['img'], headers=headers).content
imgPath = 'C:/Users/Administrator/Desktop/qaws/xuanshou/'+pic['name']+'.jpg'
# 将图片写入指定位置
with open(imgPath, 'wb') as f:
f.write(pi)
print("下载成功")
except Exception as e:
print(e)
2、写一个main方法运行
  
    if __name__ == '__main__':
     TangJingLin().downPicByUrl()
执行结果:

 


  

标签:star,headers,text,print,tds,爬虫,青春,第二季,find
From: https://www.cnblogs.com/luojiesheng/p/17874321.html

相关文章

  • 使用ASIRequest库进行Objective-C网络爬虫示例
    使用ASIRequest库进行Objective-C网络爬虫示例在Objective-C中,ASIHTTPRequest是一个非常受欢迎的库,用于处理HTTP请求。它可用于下载网页内容,处理API请求,甚至进行复杂的网络交互。下面是一个简单的示例,展示了如何使用ASIHTTPRequest库来爬取网页代码。首先,你需要在你的项目中导入ASI......
  • Python爬虫异步与缓存技巧浅析
    Python爬虫异步与缓存技巧浅析在Python爬虫中,异步和缓存是两个非常重要的概念。异步可以显著提高爬虫的效率,而缓存则可以帮助我们避免重复抓取网页,节省时间和资源。一、异步爬虫Python的异步爬虫通常使用asyncio库来实现。这个库提供了异步I/O、事件循环、协程和任务等功能。下面是......
  • Python爬虫完整代码模版——获取网页数据的艺术
    Python爬虫完整代码模版——获取网页数据的艺术在当今数字化世界中,数据是价值的源泉。如何从海量数据中提取所需信息,是每个数据科学家和开发者必须面对的问题。Python爬虫作为一种自动化工具,专门用于从网站上抓取数据。本文将提供一个Python爬虫的完整代码模板,并配以插图,帮助读者理......
  • 爬虫的奇技淫巧之ajax-hook
    声明本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!前言随着反爬力度的不断升级,现在的爬虫越来越难搞了。诸如加密参数sign、signature、token。面对这种情况传统的方式可以使用自动化程序,如selenium、pyppeteer等。但是使用自动化工具会有很多特征能够被......
  • 无涯教程-Python爬虫 - 处理图像和视频
    Web抓取通常涉及下载,存储和处理Web内容,在本章中了解如何处理从Web下载的内容。无涯教程在抓取过程中获得的网络媒体内容可以是图像,音频和视频文件,以及非网页形式的数据文件。但是,能否信任下载的数据,尤其是将要下载并存储在计算机内存中的数据扩展名?这使得了解将要本地存储的数......
  • 【Python爬虫】第13篇:scrapy项目配置和数据获取。从0到scrapy高手笔记(附代码,可自取)
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。全套笔记和代码自取地址:请移步这里感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~共8章,37子模块scrapy爬......
  • 无涯教程-Python爬虫 - 数据处理
    在前面的章节中,无涯教程学习了有关通过各种Python模块从网页中提取数据或进行网页抓取的知识。在本章中研究各种技术来处理已抓取的数据。要处理已抓取的数据,必须将数据以特定格式存储在本地计算机上,例如电子表格(CSV),JSON或有时存储在MySQL等数据库中。CSV和JSON数据处理首先......
  • 无涯教程-Python爬虫 - 模块安装
    在本章中,让无涯教程学习可用于Web抓取的各种Python模块。虚拟环境Virtualenv是用于创建隔离的Python环境的工具。借助virtualenv,可以创建一个文件夹,其中包含使用Python项目所需的软件包所需的所有可执行文件。它还允许添加和修改Python模块,而无需访问全局安装。您可以使用以下......
  • 无涯教程-Python爬虫 - 简介
    Web抓取是从Web提取信息的自动过程,本章将为您提供有关Web抓取的深入概念,它与Web抓取的比较以及为什么要选择Web抓取。网页抓取字典中"Scrapping"一词的含义表示可以从网络中获取某些东西,这里出现两个问题:无涯教程可以从网上获得什么以及如何获得它。第一个问题的答案是"数据......
  • 使用Golang构建高性能网络爬虫
    前段时间和以前公司的老同事聚会,喝酒中无意聊到目前他们公司在做的一个爬虫项目,因为效率低下,整个人每天忙的不可开交。借着这次聚会,正好询问我一些解决方案。于是,我给了他们我的一些思路。所谓的高性能网络爬虫就是一种能够快速、高效地从互联网上抓取大量网页数据的程序。网络爬虫......