Python爬虫实战练习:批量爬取某网站图片
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python爬虫实战练习:批量爬取某网站图片,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3036字,纯文字阅读大概需要5分钟。
内容图文
![Python爬虫实战练习:批量爬取某网站图片](/upload/InfoBanner/zyjiaocheng/626/a5e742ad40bc447489c2e1f25955f43b.jpg)
1.需要用到的库有:
Requests re os time 如果没有安装的请自己安装一下,pycharm中打开终端输入命令就可以安装
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045619607.jpg)
IDE : pycharm
python 版本: 3.8.1
2.爬取地址:
https://www.vmgirls.com/9384.html
-------------------废话不多说了,不懂的可以给我留言哦,接下来我们一步一步来操作------------------
1.请求网页
# 请求网页
import requests
response=requests.get('https://www.vmgirls.com/9384.html')
print(response.text)
执行结果:
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045619871.jpg)
发现请求到的是403,直接禁止了我们访问,requests库会告诉他我们是python过来的,他知道我们是一个python禁止我们反爬
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045619991.jpg)
解决:
我们可以伪装头,把头设置一下
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045620100.jpg)
# 请求网页
import requests
headers={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'
}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)
print(response.request.headers)
执行结果:
这样头就伪装了
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045620417.jpg)
2.解析网页
# 请求网页
import requests
import reheaders={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'
}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)
# print(response.request.headers)
# print(response.text)
html=response.text#解析网页urls=re.findall('<img alt=".*?" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src="(.*?)" data-nclazyload="true">',html)
print(urls);
结果:
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045620820.jpg)
可能对re.findall后面不太理解怎么来的,关键就是要找到图片的dom然后根据re库的一个匹配规则来匹配,要匹配的用(.*?)来表示,不需要匹配的用.*?来代替就可以了,
打开网址,按f12查看源码找到图片的代码
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045621114.jpg)
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045621590.jpg)
复制图片代码,打开网页源码按 ctrl+f 进行搜索,找到图片源码的位置
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045622142.jpg)
3.保存图片
具体可以看源码,我给这些图片创建了一个文件夹(需要os库),并且命了名,这样分类下次看小姐姐就比较容易找到啦
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045622636.jpg)
import time
import requestsimport reimport osheaders={ 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'
}response=requests.get('https://www.vmgirls.com/9384.html',headers=headers)
# print(response.request.headers)
# print(response.text)
html=response.text# 解析网页# 目录名字dir_name=re.findall('<img alt="(.*?)" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src=".*?" data-nclazyload="true">',html)[-1]
if not os.path.exists(dir_name):
os.mkdir(dir_name)
urls=re.findall('<img alt=".*?" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src="(.*?)" data-nclazyload="true">',html)
print(urls);
# 保存图片for url in urls:
# 加个延时,避免给服务器造成压力 time.sleep(1)
# 图片的名字 file_name=url.split('/')[-1]
response = requests.get(url, headers=headers) with open(dir_name+'/'+file_name,'wb') as f:
f.write(response.content)
PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045622868.jpg)
可以免费领取源码、项目实战视频、PDF文件等
![Python爬虫实战练习:批量爬取某网站图片 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501045623656.jpg)
内容总结
以上是互联网集市为您收集整理的Python爬虫实战练习:批量爬取某网站图片全部内容,希望文章能够帮你解决Python爬虫实战练习:批量爬取某网站图片所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。