前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
环境使用:
-
Python 3.8
-
Pycharm
模块使用:
-
requests >>> pip install requests 数据请求模块
-
parsel >>> pip install parsel 数据解析模块
使用知识点:
python基础语法:
-
print 输出函数
-
字符串创建
-
字典创建 / 取值
-
列表取值
-
for循环遍历
-
open函数数据保存
python爬虫语法:
-
requests简单使用
-
re.sub替换方法
-
parsel css选择器数据解析
代码展示
# 导入数据请求模块
import requests
# 导入正则表达式模块
import re
# 导入数据解析模块
import parsel
1. 发送请求, 模拟浏览器对于 漫画列表页面url地址发送请求
模拟浏览器
headers = {
# user-agent 用户代理, 表示浏览器基本身份信息
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
请求链接
url = 'https:/*-***/209412/'
发送请求
response = requests.get(url=url, headers=headers)
2. 获取数据, 获取服务器返回响应数据
开发者工具: response
3. 解析数据, 提取我们想要的数据内容
章节ID / 章节标题
本次案例选择css选择器: 根据标签属性提取数据内容
转换数据类型, 转成可解析对象
selector = parsel.Selector(response.text)
获取所有li标签内容
lis = selector.css('.j-chapter-item')
for循环遍历
for li in list(reversed(lis)):
# 提取具体数据内容
title = li.css('a::text').getall()[-1].strip()
chapter_id = li.css('a::attr(data-chapterid)').get()
4. 发送请求, 模拟浏览器对于 漫画数据包url地址 发送请求
link = 'https://****/chapter/content/v1/'
data = {
'chapter_id': chapter_id,
'comic_id': '209412',
'format': '1',
'quality': '1',
'sign': '2088fa70abcab5071cf781ceeb48ace1',
'type': '1',
'uid': '63473042',
}
5. 获取数据, 获取服务器返回响应数据
json_data = requests.get(url=link, params=data, headers=headers).json()
print(title, chapter_id)
new_title = re.sub(r'[\/:*?"<>|]', '', title)
6. 解析提取我们想要图片链接
num = 1
for img in json_data['data']['page']:
img_url = img['image']
7. 保存数据
img_content = requests.get(url=img_url, headers=headers).content
with open('img\\' + new_title + str(num) + '.jpg', mode='wb') as f:
f.write(img_content)
num += 1
print(img_url)
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。