- 1、数据来源分析
- 2、制作div_list
- 3、发起请求
- 4、保存图片
- 5、批量获取
- 6、完整代码
- 声明
1、数据来源分析
打开斗图吧的主页,发现网址非常有规律,通过页码数控制下一页的改变
| 页数 | 网址 |
|---|---|
| 第一页 | https://www.doutub.com/img_lists/new/1 |
| 第二页 | https://www.doutub.com/img_lists/new/2 |
并且,每张图片都是存在在div标签中的,因此首先要找到外层的div,最后对每一个img标签的src属性进行请求就行了
利用xpath在网页中容易得到每一个div_list
每一页共有50,也就意味着有50个表情包
利用循环,获取每一个div中获取img标签的src属性,并直接进行图片获取,并保存
将图片按照页码建立文件夹
利用循环,构造如下url即可
6、完整代码https://www.doutub.com/img_lists/new/{i]
import requests
from fake_useragent import UserAgent
from lxml import etree
import os
if __name__ == '__main__':
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.44",
}
for i in range(1,11):
url = f"https://www.doutub.com/img_lists/new/{i}"
response = requests.get(url=url, headers=headers)
page=response.text
tree=etree.HTML(page)
div_list=tree.xpath('//div[@]/div')
for div in div_list:
if not os.path.exists(f'img/{i}'):
os.makedirs(f"img/{i}")
url=div.xpath('.//a//@src')[0]
data=requests.get(url=url,headers=headers).content
title=url.split("/")[-1]
with open( f'img/{i}/{title}',mode="wb") as fp:
fp.write(data)
print(f"第{i}页保存完成...")
声明
本文仅限于做技术交流学习,请勿用作任何非法商用!



