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)

代码解释:

  1. 导入库:导入requests库用于发送HTTP请求,导入parsel库用于解析HTML内容。
  2. 获取网页内容:使用requests库获取小说网站首页的HTML内容。
  3. 编码转换:由于网站编码可能与Python默认编码不一致,需要进行编码转换。
  4. 解析HTML:使用parsel库将HTML内容解析成Selector对象。
  5. 提取小说信息:使用CSS选择器从Selector对象中提取小说名和章节链接。
  6. 循环获取章节内容:遍历章节链接,使用requests库获取每个章节的HTML内容,并使用parsel库解析内容,提取章节标题和内容。
  7. 保存小说内容:将小说名、章节标题和内容写入本地txt文件。

注意:

  • 代码中的网站地址和CSS选择器需要根据目标网站进行调整。
  • 为了避免爬取速度过快,导致网站封禁,建议设置合理的爬取间隔。
  • 爬取网站内容时需要遵守网站的Robots协议,避免对网站造成负面影响。

总结:

通过使用Requests和Parsel库,可以轻松地爬取小说网站内容,并将内容保存到本地文件。这只是一个简单的示例,实际应用中可以根据需要添加更多的功能,例如数据清洗、数据存储等。

Python爬虫实战:使用Requests和Parsel库抓取小说内容并保存

原文地址: https://www.cveoy.top/t/topic/ojNU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录