爬取图片首页小图

1498-班同学

发表文章数:81

热门标签

首页 » 未分类 » 正文

需求
爬取图片网站首页上的图片
爬取图片首页小图

实现

  • 通过抓包工具确定图片不是动态加载,使用etree.xpath定位图片标签位置,通过src=""尝试捕获图片数据,但只捕获到单张图片
  • 查看图片标签信息,在页面刷新时前几张图片地址为src="",没有经过鼠标滚轮,直接查看尾端图片标签,图片地址为src2="",明确实际请求中存在图片懒加载。
  • 图片懒加载:只有当图片被显示在浏览器可视化范围之内才会将img的伪属性变成真正的属性。如果是requests发起的请求,requests请求是没有可视化范围,因此我们一定要解析的是img伪属性的属性值
  • 将tree.xpath(’./div/a/img/@src’)修改为tree.xpath(’./div/a/img/@src2’),解析img伪属性的属性值,完成需求。
  • (此处直接下载首页图,为小图形式)
import requests
from lxml import etree
import os

dirName = 'GuDianLib'
if not os.path.exists(dirName):
    os.mkdir(dirName)
    
main_url = 'https://sc.chinaz.com/tupian/gudianmeinvtupian.html'
response = requests.get(url=main_url,headers=headers)
response.encoding='utf-8'
page_text = response.text

tree = etree.HTML(page_text)
div_list = tree.xpath('//div[@id="container"]/div')
for div in div_list:
    title = div.xpath('./div/a/img/@alt')[0]+'.jpg'
    src_one = 'https:' + div.xpath('./div/a/img/@src2')[0]
    img_data = requests.get(url=src_one,headers=headers).content
    imgPath = dirName+'/'+title
    with open(imgPath,'wb')as fp:
        fp.write(img_data)
        print(title,'下载成功')


爬取图片首页小图

注意:标签嵌套多个div,选错div会导致地址出错

标签:

拜师教育学员文章:作者:1498-班同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《爬取图片首页小图》 发布于2021-04-15

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录