python 作业06 基础聚焦爬虫爬取小说

import requests
from lxml import etree
import re
import time

n = int(input("请输入你要爬取小说的章数:"))

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
}

# 创建文件,如果文件不存在
with open('novel_contents.txt', 'a+', encoding='utf-8') as f:
    f.close()

for i in range(n):
    url = f"https://www.3bqg.cc/book/10376/{i + 1}.html"
    response = requests.get(url, headers=headers)
    tree = etree.HTML(response.text)
    print(f'正在获取第{i + 1}章内容')

    text = tree.xpath('//div[@class="Readarea ReadAjax_content"]//text()')
    novel_content = []

    for line in text:
        # 使用正则表达式将空白字符替换为空字符串
        cleaned_line = re.sub(r'\s+', '', line)
        novel_content.append(cleaned_line)

    # 将当前章内容写入文件,并添加首行缩进2个字符以及分隔线
    with open('novel_contents.txt', 'a', encoding='utf-8') as f:
        if i > 0:
            f.write("===============\n")
        # 首行缩进2个字符
        if len(novel_content) > 0:
            f.write("    " + novel_content[0] + '\n')
            for line in novel_content[1:]:
                f.write(line + '\n')
        else:
            f.write('\n')
        f.close()

    time.sleep(3)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值