Python爬虫实战:使用Requests和Parsel库抓取小说内容并保存
Python爬虫实战:使用Requests和Parsel库抓取小说内容并保存
本文将介绍如何使用Python的Requests和Parsel库爬取小说网站内容,并将其保存到本地txt文件。代码示例展示了如何获取小说名、章节链接、章节标题和内容,并进行数据处理和存储。
代码示例:
import requests
import parsel
url = 'https://www.777zw.net/1/1429/'
response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk')
print(responses)
selector = parsel.Selector(responses)
novel_name = selector.css('#info h1::text').get() #小说名
href = selector.css('#list dd a::attr(href)').getall() #小说章节
for link in href:
link_url = 'https://www.777zw.net/1/1429/' + link
response_1 = requests.get(link_url)
responses_1 = response_1.text.encode('iso-8859-1').decode('gbk')
selecter_1 = parsel.Selector(responses_1)
title_name = selecter_1.css('.bookname h1::text').get() #小说章节
content_list = selecter_1.css('#content::text').getall() #小说内容
content = ''.join(content_list)
# 保存
with open(novel_name + '.txt', mode='a', encoding='utf-8') as f:
f.write(title_name)
f.write('')
f.write(content)
f.write('')
# print(title_name)
print(novel_name)
print(content_list)
代码解释:
- 导入库:导入requests库用于发送HTTP请求,导入parsel库用于解析HTML内容。
- 获取网页内容:使用requests库获取小说网站首页的HTML内容。
- 编码转换:由于网站编码可能与Python默认编码不一致,需要进行编码转换。
- 解析HTML:使用parsel库将HTML内容解析成Selector对象。
- 提取小说信息:使用CSS选择器从Selector对象中提取小说名和章节链接。
- 循环获取章节内容:遍历章节链接,使用requests库获取每个章节的HTML内容,并使用parsel库解析内容,提取章节标题和内容。
- 保存小说内容:将小说名、章节标题和内容写入本地txt文件。
注意:
- 代码中的网站地址和CSS选择器需要根据目标网站进行调整。
- 为了避免爬取速度过快,导致网站封禁,建议设置合理的爬取间隔。
- 爬取网站内容时需要遵守网站的Robots协议,避免对网站造成负面影响。
总结:
通过使用Requests和Parsel库,可以轻松地爬取小说网站内容,并将内容保存到本地文件。这只是一个简单的示例,实际应用中可以根据需要添加更多的功能,例如数据清洗、数据存储等。
原文地址: https://www.cveoy.top/t/topic/ojNU 著作权归作者所有。请勿转载和采集!