1.思路
2.分析
1.分析页面规律
https://www.doutula.com/photo/list/?page=1 第一页
https://www.doutula.com/photo/list/?page=2 第二页
https://www.doutula.com/photo/list/?page=3 第三页
可以看出,page 的值跟点击的页数有关,因此,我们就拿到了要爬取的 url
2.打开检查元素,可以看到html源码
可以看出,每一页的图片都在 div 标签里面,然后每一个 a 标签包含一个图片。
我们要取到表情包,就是要取得 a 标签包含的图片 url,我们可以利用 xpath 语法。
获取 img 标签取到的 img 有 gif 的信息,我们需要过滤掉
imgs = html.xpath(’//div[@class=“page-content text-center”]//img[@class!=“gif”]’)
3.代码
import requests
from lxml import etree
import os
from time import *
# 开始时间
start = time()
# 定义一个函数来解析网页
def parse_page(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
}
response = requests.get(url,headers=headers)
# print(response.text)
# 网页源码
text = response.text
html = etree.HTML(text)
# 获取Img 并且把gif的图片过滤掉
imgs = html.xpath('//div[@class="page-content text-center"]//img[@class!="gif"]')
for img in imgs:
#print(etree.tostring(img))
# 获取每张图片的url
img_url = img.get('data-original')
# # 获取图片的名字
alt = img.get('alt')
# # 在os模块中可以很好的分割字符,比如这种带.的数据
suffix = os.path.splitext(img_url)[