前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
看来标题想必你们都等不及了,那么话不多说
让我们赶快冲起来吧~
本文章完整源码直接在文末名片领取。点击此处跳转
本次亮点:
1、系统性分析页面
2、多页面数据解
3、海量图片数据保存
开发环境 & 第三方模块:
-
解释器版本 >>> python 3.8
-
代码编辑器 >>> pycharm 2021.2
-
requests >>> pip install requests
-
parsel >>> pip install parsel
pa chong基础:
-
什么是pa chong
采集数据的一项技术 (图片/文本/音频/视频)
模拟人的操作(点赞 评论 只要你能够通过网页或者app实现的 爬虫都可以批量实现)
-
pa chong的原理是什么?
模拟成 客户端 向 服务器 发送网络请求 (访问网站)
实现一个采集案例?
一. 思路分析
找到需要爬取的数据来源
静态数据: 所有的内容 基本都在网页源代码当中
访问到这个 https://www.jdlingyu.com/tuji 数据就在这里
获取所有相册详情页的链接
挨个访问, 将每个相册详情页里面的 图片取出来
保存图片
动态数据(network抓包分析)
二. 代码实现
-
发送请求 访问的是列表页面
-
获取数据 列表页面源代码
-
解析数据 详情页的链接拿到
-
发送请求 访问所有详情页链接
-
获取数据 获取到详情页里面的源代码
-
解析数据 提取出详情页源代码里面的 图片链接
-
保存数据
代码展示
导入模块
import requests
import parsel
- 批量爬取
for page in range(1, 504):
请求链接
url = f'https://www.jdlingyu.com/tuji/page/{page}'
- 发送请求 访问的是列表页面
response = requests.get(url)
- 获取数据 列表页面源代码
html_data = response.text
- 解析数据 拿到详情页的链接
# .post-info h2 a
# css/xpath/re
select = parsel.Selector(html_data)
detailUrlList = select.css('.post-info h2 a::attr(href)').getall()
# print(detailUrlList)
for detailUrl in detailUrlList:
- 发送请求 访问所有详情页链接
resp = requests.get(detailUrl)
- 获取数据 获取到详情页里面的源代码
detail_html = resp.text
- 解析数据 提取出详情页源代码里面的 图片链接
select_2 = parsel.Selector(detail_html)
img_list = select_2.css('.entry-content img::attr(src)').getall()
print(img_list)
for img in img_list:
- 保存数据 图片
img_data = requests.get(img).content
img_name = img.split('/')[-1]
open(f'img/{img_name}', mode='wb').write(img_data)
效果展示
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。