三国演义内容抓取(诗词名句网)

三国演义内容抓取(诗词名句网)

时间:2024-08-06

一、完整代码

import random
import time

import requests
from lxml import etree

four_famous_novels = 'https://www.shicimingju.com/bookmark/sidamingzhu.html'  # 四大名著在线阅读地址
three_kingdoms = 'https://www.shicimingju.com/book/sanguoyanyi.html'  # 三国演艺地址
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'
}
req = requests.get(three_kingdoms, headers=header)
req.encoding = req.apparent_encoding
# print(req.text)
tree = etree.HTML(req.text)
book_mulu = tree.xpath('//div[@class="book-mulu"]/ul/li/a/text()')
mulu_href = tree.xpath('//div[@class="book-mulu"]/ul/li/a/@href')
for i in range(len(book_mulu)):
    url = 'https://www.shicimingju.com' + mulu_href[i]
    print(url)
    req_content = requests.get(url, headers=header)
    req_content.encoding = req_content.apparent_encoding
    tree = etree.HTML(req_content.text)
    content = tree.xpath('//div[@class="chapter_content"]//text()')
    print(book_mulu[i])
    print(content)
    time.sleep(random.randint(1, 4))

效果:

二、知识点

2.1 随机时间点(避免网站压力大)

    time.sleep(random.randint(1, 4))

三、思路

 第一步: 先抓取目录和目录下面的链接
 
 第二步: 循环所有的urls ,然后抓取下面的内容
 
 第三步TODO: 创建一个三国演绎的文件夹,然后里面按照  01 章+ 章节名.txt 进行文本内容写入
posted @ 2024-08-07 00:15  随风小屋  阅读(14)  评论(0编辑  收藏  举报