爬虫中请求图片链接不正确的解决办法

编程入门 行业动态 更新时间:2024-10-15 20:23:50

<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫中请求图片链接不正确的解决办法"/>

爬虫中请求图片链接不正确的解决办法

问题解决

  在爬取站长之家的图片的时候遇到一个问题,解析图片的src属性之后得到的链接不正确,用代码解析出来全都是这样的

可是在网页结构中查看明明是正确的

  那这对于一个小白来说就有点手足无措了,可是凭借我敏锐的洞察力发现里面有个属性"data-original"里面存的值和src里面的一模一样,紧接着我把代码中解析src属性更改成"data-original"之后就成功了,此时拿到图片链接的问题是解决了,那么作为一个日后想成为爬虫大佬的"坤"就必须了解这是为什么弄明白其中的原理

问题原因-懒加载


什么是懒加载呢?对于前端开发者来说一定不陌生

  • 懒加载(Lazy Loading)是一种页面优化技术,它延迟加载网页上的某些部分,以加速网页的加载速度和提高性能。
  • 在使用懒加载技术时,网页只会在用户需要访问它们时才会加载相关的资源,而不是一次性将所有资源都加载出来。比如,在使用懒加载技术的图片网站上,只有当用户滚动到页面上的某一部分时,该部分的图片才会开始加载。
  • 懒加载的优点包括:减少加载时间,提高网页性能,减小页面文件体积,降低带宽成本,减少服务器压力,提高用户体验等

  以上是官方解释,大白话说就是请求网页的时候先不加载图片或者一些资源文件,只有当用户看到的时候再加载,这无疑提高了网站的访问速度,用户体验等等,对于用户和网站的开发者来说这个技术百利无一害,但是苦了咱这些爬虫的人
  所以此时原因就是因为这个懒加载技术,图片没加载的时候是没有src属性的,但是网站的开发者一般会将图片的链接先放在其他自定义属性之中,我们只需要解析这个属性即可

实例

这次爬的网站"站长之家": .html

import requests
from lxml import etree
url = ".html"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.50"
}
resp = requests.get(url,headers).content.decode('utf-8')et = etree.HTML(resp)img_list = et.xpath('//div[contains(@class,"tupian-list")]/div[contains(@class,"item")]/img')for img in img_list:#原始图片地址img_src = img.xpath('./@data-original')[0]print(img_src)#拼接替换成高清图片地址gq_src = "https:"+img_src.replace('scpic3','tppic').replace('s','big').replace('filebig','files').replace('imgbig','imgs')#获取图片名称title = img.xpath('./@alt')[0].replace("图片","")#获取图片二进制流byte_img = requests.get(gq_src,headers).contentfp = open('img'+title+".jpg",'wb')fp.write(byte_img)print(title,'下载完毕!!')
希望各位看完有所收获

更多推荐

爬虫中请求图片链接不正确的解决办法

本文发布于:2024-02-06 10:57:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748332.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   解决办法   不正确   图片链接

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!