目录标题

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

一个简单的python案例,用正则采集小说网站-LMLPHP

使用Python抓取xx阁小说需要用到 requests 库和正则表达式模块 re,下面是一个具体的实现步骤:

1. 首先需要使用 requests 库请求小说的页面

例如:

import requests

url = 'https://*****.com.cn/book/123456/'
response = requests.get(url)
response.encoding = 'utf-8'

在请求后需注意设置编码,否则可能会出现乱码。

2. 获取小说的标题

可以使用正则表达式模块中的 re.findall() 方法,

例如:

import re

title_pattern = re.compile(r'<meta property="og:title" content="(.*?)"/>')
title = title_pattern.findall(response.text)[0]

此处需要用到正则表达式中的捕获组,用来匹配页面上的标题信息。

3. 获取小说的章节列表

也可以使用正则表达式模块中的 re.findall() 方法

例如:

chapter_pattern = re.compile(r'<dd><a href="(.*?)">(.*?)</a></dd>')
chapter_list = chapter_pattern.findall(response.text)

此处的正则表达式用来匹配页面上的章节链接和章节标题信息。

4. 获取每个章节的内容

需要遍历章节列表,并使用同样的方式请求每一个章节的页面并提取相应的内容

例如:

content_pattern = re.compile(r'<div id="content">(.*?)</div>', re.S)
for chapter in chapter_list:
    chapter_url = url + chapter[0]
    chapter_title = chapter[1]
    chapter_response = requests.get(chapter_url)
    chapter_response.encoding = 'utf-8'
    chapter_content = content_pattern.findall(chapter_response.text)[0]
    源码、解答、教程、安装包等资料加V:qian97378免费领
    # 过滤掉内容中的一些无用标签和空格
    chapter_content = chapter_content.replace('&nbsp;', ' ')
    chapter_content = chapter_content.replace('<br/>', '\n')
    chapter_content = chapter_content.replace('<br />', '\n')
    chapter_content = chapter_content.replace('<p>', '')
    chapter_content = chapter_content.replace('</p>', '')
    with open(title + '.txt', 'a', encoding='utf-8') as f:
        f.write(chapter_title + '\n\n' + chapter_content + '\n\n')

此处需要注意的是,章节的内容中可能包含一些无用标签和空格,需要使用字符串的 replace() 方法进行过滤。

在使用正则表达式进行匹配时,还需要注意一些细节,例如正则表达式的贪婪匹配、非贪婪匹配、转义字符等问题。

需要仔细阅读官方文档,并进行实际操作和不断调试,才能够熟练掌握正则表达式的使用方法。

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

一个简单的python案例,用正则采集小说网站-LMLPHP

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

07-13 23:02