python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)

1.需要用到的库有:
Requestsreostime 如果没有安装的请自己安装一下,pycharm中打开终端输入命令就可以安装
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

2.IDE : pycharm
3.python 版本: 3.8.1
2.爬取地址:
https://www.vmgirls.com/9384.html
-------------------废话不多说了,不懂的可以给我留言哦,接下来我们一步一步来操作------------------
1.请求网页
1 #请求网页
2 importrequests3
4 response=requests.get('https://www.vmgirls.com/9384.html')5
6 print(response.text)
执行结果:
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

发现请求到的是403,直接禁止了我们访问,requests库会告诉他我们是python过来的,他知道我们是一个python禁止我们反爬
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

解决:
我们可以伪装头,把头设置一下
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

#请求网页
importrequests
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爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

2.解析网页
#请求网页
importrequestsimportre
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)#print(response.text)
html=response.text#解析网页
urls=re.findall('',html)print(urls);
结果:python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

可能对re.findall后面不太理解怎么来的,关键就是要找到图片的dom然后根据re库的一个匹配规则来匹配,要匹配的用(.*?)来表示,不需要匹配的用.*?来代替就可以了,
打开网址,按f12查看源码找到图片的代码
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

复制图片代码,打开网页源码按 ctrl+f 进行搜索,找到图片源码的位置
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

3.保存图片
具体可以看源码,我给这些图片创建了一个文件夹(需要os库),并且命了名,这样分类下次看小姐姐就比较容易找到啦
python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)
文章图片

#请求网页
importtimeimportrequestsimportreimportos
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)#print(response.text)
html=response.text#解析网页#目录名字
dir_name=re.findall('',html)[-1]if notos.path.exists(dir_name):
os.mkdir(dir_name)
urls=re.findall('',html)print(urls); #保存图片
for url inurls:#加个延时,避免给服务器造成压力
time.sleep(1)#图片的名字
file_name=url.split('/')[-1]
response= requests.get(url, headers=headers)
with open(dir_name+'/'+file_name,'wb') as f:
【python爬取图片代码可替换网站_Python爬虫(批量爬取某网站图片)】f.write(response.content)

    推荐阅读