今天这个教程采用最简单的爬虫方法,适合小白新手入门,代码不复杂
本案例我们就以爬取小说内容做教程,喜欢看小说的同学可以收藏起来了!!
流程步骤
在开始之前,请确保你的电脑已安装Python环境,并安装了以下库:
- requests:用于发送HTTP请求。
- re:用于正则表达式匹配。
下面正式开始教程。
1. 发送请求
首先,我们需要向目标网站发送请求,获取网页内容。这里我们使用requests库。
import requests
# 伪装成浏览器,防止被网站识别为爬虫
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
}
url = 'https://www.99htxt.com/kan/768629/'
res = requests.get(url, headers=headers)
这里我们设置了一个请求头User-Agent,目的是伪装成浏览器,防止被网站识别为爬虫。
2. 提取书名
接下来,我们使用正则表达式提取书名。
import re
book_name_list = re.findall('<h1 class="booktitle">(.*?)</h1>', res.text)
book_name = book_name_list[0]
print(book_name)
这里我们使用了re.findall()方法,第一个参数是正则表达式,用于匹配书名的位置,第二个参数是网页源代码。findall()方法会返回一个列表,我们取第一个元素即为书名。
3.提取目录名
同样地,我们使用正则表达式提取目录名。
title_all = []
title_list = re.findall('title="魂穿三国,成为最强前夫哥? (.*?)">第', res.text)
for title in title_list:
if '章' in title:
title_all.append(title)
这里我们同样使用re.findall()方法,匹配目录名。然后通过一个循环,将包含“章”的目录名添加到列表中。
4.提取正文路径
接下来,我们需要提取正文所在的路径。
text_path = re.findall('<a href="/c/768629/(.*?)" title="魂穿三国,成为最强前夫哥? 第', res.text)
这里我们使用re.findall()方法,匹配正文路径。
5. 组装正文地址
以前5章为例,如想爬取所以内容使用5的位置换成len(title_all),我们将目录名和正文路径组合成完整的正文地址。
text_url_dict = {
}
for i in range