首先我们对怎么爬取进行相关介绍,在python运行后,我们只需要输入我们要爬取的小说的id号,我们就可以对我们的小说进行相关内容的爬取。代码中需要修改的参数为
folder_name = 'xiaoshuo2333' # 设置小说存储的文件夹名字
接下来我们对运行的结果进行观察:
我们输入需要爬取的id值1,然后代码运行结束后我们的xiaoshuo2333文件目录里面就会生成我们每一章节的txt文件。小说的内容就存放在这个文件夹里面了。
接下来我们进行代码层面的展示
import requests # 第三方的模块
import parsel # 第三方的模块
import os # 内置模块 文件或文件夹
folder_name = 'xiaoshuo2333' # 设置文件夹名字
if not os.path.exists(folder_name):
os.mkdir(folder_name)
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
}
rid = input('输入书名ID:')
link = f'https://www.bqg70.com/book/{rid}/'
html_data = requests.get(url=link, headers=headers).text
selector_2 = parsel.Selector(html_data)
divs = selector_2.css('.listmain dd')
for div in divs:
title = div.css('a::text').get()
href = div.css('a::attr(href)').get()
url = 'https://www.bqg70.com' + href
try:
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
book = selector.css('#chaptercontent::text').getall()
book = '\n'.join(book)
# 设置文件路径
file_path = os.path.join(folder_name, title + '.txt')
# 数据保存到指定路径下
with open(file_path, mode='a', encoding='utf-8') as f:
f.write(book)
print('正在下载章节:', title)
except Exception as e:
print(e)
上述代码仅供学习,如有侵权可联系删除