我们在遨游网络世界时,看到一些中意的图片,总是忍不住流连忘返,甚至还想都保存下来,但是一张一张的保存又太麻烦了,那这时候就得用到咱们的python了。
众所周知,Python的某一项专长,就是批量下载,那我们今天就一起试试。
知识点:
软件:
python 3.8
pycharm 2021专业版
没有软件的小伙伴可以在官网下载,也可以在左侧扫一下领取
需要安装的模块:
requests # 第三方 模块
parsel # 解析数据
键盘按 win+r 输入cmd打开命令提示符窗口,输入 pip install requests 安装,两个模块安装方法是一样的。
1、分析网站 (思路分析)
①确定爬取内容
数据所在地址 kanxiaojiejie 大家自己完善一下地址,包括后面代码里的。
②通过查看网页源代码分析数据内容
2、爬虫流程
发送请求 - 获取数据 - 解析数据 - 保存数据
模块导入
import requests
import parsel
发送请求
def get_response(html_url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}
# 为什么这里要 requests.get() post() 请求会更安全...
response = requests.get(url=html_url, headers=headers)
return response
保存数据
def save(img_url):
img_data = requests.get(img_url).content
img_name = img_url.split('/')[-1]
print("正在下载: " + img_name)
with open("img\\" + img_name, mode='wb') as f:
f.write(img_data)
解析数据
获取图片url地址以及标题 提取数据
def parse_1(html_data):
selector = parsel.Selector(html_data)
link_list = selector.css('.entry-title a::attr(href)').getall()
return link_list
获取图片url地址以及标题
ef parse_2(html_data):
selector_1 = parsel.Selector(html_data)
img_list = selector_1.css('.entry.themeform p img::attr(src)').getall()
return img_list
主函数
def run(url):
data_html = get_response(url).text
link_list = parse_1(data_html)
for link in link_list:
data_html_1 = get_response(link).text
img_list = parse_2(data_html_1)
for img in img_list:
save(img)
调用主函数运行
for page in range(1, 112):
url = f'kanxiaojiejie/page/{page}'
run(url)
运行效果我就不展示了,大家自己去试试哈~
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/fei347795790/article/details/123330709
内容来源于网络,如有侵权,请联系作者删除!