还在傻乎乎的付费看小说?十分钟我教你怎么免费看! 您所在的位置:网站首页 microsoft365收费怎么办 还在傻乎乎的付费看小说?十分钟我教你怎么免费看!

还在傻乎乎的付费看小说?十分钟我教你怎么免费看!

2023-04-14 07:47| 来源: 网络整理| 查看: 265

现在有很多小说为了保护作者版权,都是需要收费的,可你又想看怎么办?今天我来教你怎么解决这个问题

先举个例子,我们来看下《一念永恒》小说的第一章内容,URL:http://www.biqukan.com/1_1094/5403177.html

我们先获取HTML信息试一试,编写代码如下:

# -*- coding:UTF-8 -*-

import requests

if __name__ == '__main__':

    target = 'http://www.biqukan.com/1_1094/5403177.html'

    req = requests.get(url=target)

    print(req.text)

运行后就能看到如下

看到这很多人就会发现有好多都是不需要的,所以我们就要把其中正文部分提取出来

然后,我们使用审查元素方法,查看一下我们的目标页面,你会看到如下内容

不难发现,文章的所有内容都放在了一个名为div的“东西下面”,这个"东西"就是html标签。HTML标签是HTML语言中最基本的单位,HTML标签是HTML最重要的组成部分。

细心的朋友可能就能发现一个事实,class属性为showtxt的div标签,独一份!这个标签里面存放的内容,是我们关心的正文部分。

知道这个信息,我们就可以使用Beautiful Soup提取我们想要的内容了,编写代码如下:

# -*- coding:UTF-8 -*-

from bs4 import BeautifulSoup

import requests

if __name__ == "__main__":

    target = 'http://www.biqukan.com/1_1094/5403177.html'

    req = requests.get(url = target)

    html = req.text

    bf = BeautifulSoup(html)

    texts = bf.find_all('div', class_ = 'showtxt') print(texts)

在解析html之前,我们需要创建一个Beautiful Soup对象。BeautifulSoup函数里的参数就是我们已经获得的html信息。然后我们使用find_all方法,获得html信息中所有class属性为showtxt的div标签。find_all方法的第一个参数是获取的标签名,第二个参数class_是标签的属性,为什么不是class,而带了一个下划线呢?因为python中class是关键字,为了防止冲突,这里使用class_表示标签的class属性,class_后面跟着的showtxt就是属性值了。看下我们要匹配的标签格式:

这样对应的看一下,是不是就懂了?可能有人会问了,为什么不是find_all(‘div’, id = ‘content’, class_ = ‘showtxt’)?这样其实也是可以的,属性是作为查询时候的约束条件,添加一个class_='showtxt’条件,我们就已经能够准确匹配到我们想要的标签了,所以我们就不必再添加id这个属性了。运行代码查看我们匹配的结果:

我们可以看到,我们已经顺利匹配到我们关心的正文内容,但是还有一些我们不想要的东西。比如div标签名,br标签,以及各种空格。怎么去除这些东西呢?我们继续编写代码:

# -*- coding:UTF-8 -*-

from bs4 import BeautifulSoup

import requests

if __name__ == "__main__":

    target = 'http://www.biqukan.com/1_1094/5403177.html'

    req = requests.get(url = target) html = req.text

    bf = BeautifulSoup(html)

    texts = bf.find_all('div', class_ = 'showtxt')

    print(texts[0].text.replace('\xa0'*8,'\n\n'))

find_all匹配的返回的结果是一个列表。提取匹配结果后,使用text属性,提取文本内容,滤除br标签。随后使用replace方法,剔除空格,替换为回车进行分段。 在html中是用来表示空格的。replace(’\xa0’*8,’\n\n’)就是去掉下图的八个空格符号,并用回车代替:

就能得到如下结果

可以看到,我们很自然的匹配到了所有正文内容,并进行了分段。我们已经顺利获得了一个章节的内容,要想下载正本小说,我们就要获取每个章节的链接。我们先分析下小说目录:

URL:http://www.biqukan.com/1_1094/

由于文章内容比较多,篇幅不允许,部分内容未展示。如有需要获取完整的资料文档的朋友点赞+评论,即可免费获取。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有