文章目录
前言
根据基本的爬虫知识,爬取快看漫画每日更新模块的漫画名,对应漫画的描述和对应的封面图片。
一、爬虫是什么?
爬虫是通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
二、使用步骤
1.引入库
代码如下:
import itertools
import requests
2.文件夹准备
在该程序下创建一个同级的image文件夹,用来存放下载的每日更新漫画封面图片。
3.将列表存储为txt格式文件
代码如下:
def listTxt(list, path):
file = open(path, 'w', encoding='utf-8')
for l in list:
l = str(l) # 强制转换
if l[-1] != '\n':
l = l + '\n'
file.write(l)
flie.colse()
print(f"{path}文件存储成功")
4.爬取每日更新页面具体代码:
代码如下:
# @ClassName 快看
# @Description TODO:(爬取《快看》漫画每日更新模块,每天按时爬取并保存到kkmh.txt文件中,并将爬取的图片保存到image文件夹中)
import itertools
import requests
# 将列表存储为txt格式文件
def listTxt(list, path):
file = open(path, 'w', encoding="utf-8")
for l in list:
l = str(l) # 强制转换
if l[-1] != '\n':
l = l + '\n'
file.write(l)
file.close()
print(f"{path}文件存储成功")
# 图片下载
def download_img(url_info):
num = 1
# 遍历匹配成功的链接
for img in url_info:
print(img)
response = requests.get(img)
image = response.content
# 将下载的图片保存到对应的文件夹中
with open('./image/%s.jpg' % num, 'wb') as fb:
fb.write(image)
print("正在下载第%s张图片" % num)
num = num + 1
print("下载完成!")
# 接口
url = 'https://www.kuaikanmanhua.com/v2/pweb/daily/topics?pos=0'
# 常用请求头信息:
# User-Agent:请求载体的身份标识
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44"
}
# 获取页面的源码
response = requests.get(url=url, headers=headers)
code = response.json()['code'] # 获取状态码
if code == 200:
topics = response.json()['data']['topics']
# print(type(topics))
titles = ["漫画名: " + topic['title'] for topic in topics]
descriptions = ["描述: " + topic['description'].replace('\n', ' ') for topic in topics]
image = [topic['vertical_image_url'] for topic in topics]
download_img(image)
# print(titles)
# print(descriptions)
kkmh = list(itertools.chain.from_iterable(zip(titles, descriptions))) # list交替合并
# print(kkmh)
listTxt(kkmh, './kkmh.txt')
else:
print("网页访问错误")
5.运行结果
下载成功的图片存入到了image文件夹中,漫画名和相应的描述存入了txt文件中。
注:1、由于是异步请求,所以没有使用BeautifulSoup进行解析。
2、 实现每日爬取这个功能,可以用宝塔面板中的“计划任务”功能,设置如下图。
总结
以上就是今天我分享的内容,一个爬取快看漫画每日更新模块的简单教程。和大家一起进步呀!Fighting!!!