python抓取动态网页(抓取站长素材中的图片地址存储在可视窗口时达到懒加载的效果 )

优采云 发布时间: 2021-11-21 08:12

  python抓取动态网页(抓取站长素材中的图片地址存储在可视窗口时达到懒加载的效果

)

  图片懒加载概念

  图片延迟加载是一种网页优化技术。图片作为一种网络资源,在请求时和普通静态资源一样,都会占用网络资源,一次加载整个页面的所有图片会大大增加页面首屏的加载时间。为了解决这个问题,通过前后端合作,只有当图片出现在浏览器当前窗口时才加载图片。减少首屏图片请求次数的技术称为“图片延迟加载”。

  原则:

  先将img标签的src链接设置为同一张图片(比如空白图片),然后给img标签设置一个自定义属性(比如data-src),然后将真实图片地址存放在data-src中,当JS*敏*感*词*图片元素进入可视化窗口时,自定义属性中的地址存放在src属性中。达到懒加载的效果。

  案例:抓取站长素材中的图片数据

  在浏览器中加载时,可视化区域中的图片为src,不在可视化区域中的图片为src2。但是使用request模块发送请求时,没有可见区域,所以都是src2。

   1 # -*- coding:utf-8 -*-

2 import requests

3 from lxml import etree

4 if __name__ == "__main__":

5 url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html'

6 headers = {

7 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',

8 }

9 #获取页面文本数据

10 response = requests.get(url=url,headers=headers)

11 response.encoding = 'utf-8'

12 page_text = response.text

13 #解析页面数据(获取页面中的图片链接)

14 #创建etree对象

15 tree = etree.HTML(page_text)

16 div_list = tree.xpath('//div[@id="container"]/div')

17 #解析获取图片地址和图片的名称

18 for div in div_list:

19 image_url = div.xpath('.//img/@src2') #src2伪属性

20 image_name = div.xpath('.//img/@alt')

21 print(image_url)

22 print(image_name)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线