网站首页 > 知识剖析 正文
分析网站,梳理获取的思路:
查看到直接是有图片的链接的,但是这只是当前的页面,继续往下翻,发现有些图片是懒加载的,并没有图片的链接。对于未浏览到的内容,其提供的图片是空白的图片链接。
但是,他们都提供了图片详情页的链接。
所以这里有两个思路,一个是解决懒加载的问题,另外一个是获取图片详情页,进入图片详情页中再下载图片。这里我们选择第二种,至此,思路就清晰了。
整理思路:
请求要爬取的页面→获取该页面所有的图片详情页链接→请求详情页,获取具体的图片链接→请求图片具体链接,获取图片二进制内容,保存到本地
利用代码实现:
from curl_cffi import requests
from lxml import etree
url = "https://pixabay.com/zh/illustrations/search/%e8%87%aa%e7%84%b6/"
headers = {
'User-Agent':'Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0',
}
# 第一次请求,获取该页面所有的图片详情页链接
req = requests.get(url,headers=headers,impersonate='chrome')
html_tree = etree.HTML(req.text)
pic_srclist = html_tree.xpath('//a[@class="link--WHWzm"]/@href')
# print(pic_srclist)
print(req.status_code)
i = 0
for pic_src in pic_srclist:
i = i + 1
picpage_url = "https://pixabay.com"+pic_src
print('正在获取',i)
#第二次请求,获取图片详情页中的图片链接
temp_req = requests.get(url = picpage_url,headers=headers,impersonate='chrome')
temp_tree = etree.HTML(temp_req.text)
pic_url = temp_tree.xpath('//div[@class="container--3Mtk4"]//img/@src')[0]
pic_alt = temp_tree.xpath('//div[@class="container--3Mtk4"]//img/@alt')[0]
pic_name = pic_url.split('/')[-1]
# 第三次请求,获取图片具体链接
temp_req = requests.get(url = pic_url,headers=headers,impersonate='chrome')
with open(pic_name,'wb') as f:
f.write(temp_req.content)
print(pic_name,'获取完成!')
终端输出:
爬取结果:
- 上一篇: 在企业网站建设中如何正确使用H标签?
- 下一篇: 是什么组成了html?html组成元素有哪些?
猜你喜欢
- 2025-01-07 8个移动端适配技巧,兼容性问题减少90%
- 2025-01-07 测试开发如何快速上手Vue前端开发(下)
- 2025-01-07 WordPress 6.2 引进了速度更快的 HTML 处理 API
- 2025-01-07 5分钟看懂独立站SEO新手指南(下)
- 2025-01-07 是什么组成了html?html组成元素有哪些?
- 2025-01-07 在企业网站建设中如何正确使用H标签?
- 2025-01-07 自适应设计:自适应图片的完整教程
- 2025-01-07 「转行测试开发-HTML」(六)---div和span、图像标签的使用
- 2025-01-07 企业SEO网站优化方案流程
- 2025-01-07 JSP页面实现验证码校验
- 最近发表
-
- 表格存储 SQL 查询多元索引(表格存储 sql 查询多元索引的方法)
- 数据库教程-SQL Server多条件模糊查询
- Twitch宣布放弃Flash并逐步转型至HTML5平台
- 移动平台最强播放器MX Player:终于支持安卓5.0了!
- win10 NFS+黑群晖远程加载管理Windows文件夹(读写NTFS格式+高清播放器)
- Android端VLC 3.3版本发布,重新设计播放器界面
- 不仅仅被苹果封杀!Youtube宣布迁移Flash
- 揭开网站背后的魔法:B/S系统原来这么简单!
- Adobe Animate (An) 2020网页设计软件下载和安装教程
- Adobe发布“巨量”安全更新:遏制Flash“祸害”Linux
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)