关于起点小说的爬取

时间:2024-03-13 11:17:04

  假设已经完成了所有需要的模块的安装

  开始爬取“起点小说网”

  https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id13(Beautiful Soup4.2.0文档

  先看看官方文档的实例与说明:

下面的一段HTML代码将作为例子被多次用到.这是 爱丽丝梦游仙境的 的一段内容(以后内容中简称为 爱丽丝 的文档):

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

print(soup.prettify())
# <html>
#  <head>
#   <title>
#    The Dormouse's story
#   </title>
#  </head>
#  <body>
#   <p class="title">
#    <b>
#     The Dormouse's story
#    </b>
#   </p>
#   <p class="story">
#    Once upon a time there were three little sisters; and their names were
#    <a class="sister" href="http://example.com/elsie" id="link1">
#     Elsie
#    </a>
#    ,
#    <a class="sister" href="http://example.com/lacie" id="link2">
#     Lacie
#    </a>
#    and
#    <a class="sister" href="http://example.com/tillie" id="link2">
#     Tillie
#    </a>
#    ; and they lived at the bottom of a well.
#   </p>
#   <p class="story">
#    ...
#   </p>
#  </body>
# </html>

把官方给出的例子在解释器里敲一遍得到如下结果:

关于起点小说的爬取

关于起点小说的爬取

关于起点小说的爬取

...(略)

假设已经大致将官方文档过了一遍,知道简单的用法,接下来我们就可以开始爬取起点文学网的某部小说了

下面以《重生之穿梭万界》为例

第一步:获取文章目录:

我们打开这本小说的网址右键检查,得到如图源代码(右键不了请在浏览器设置里禁用JavaScript):

关于起点小说的爬取

发现真正需要的仅仅是a标签的内容,里面包含的章节的目录与实际访问的网址。接着就可以着手操作了:

关于起点小说的爬取

得到打印结果:

关于起点小说的爬取

怎么样,是不是很整齐呢?

对应起点中文网的目录:

关于起点小说的爬取

目录大功告成

第二步,爬取对应访问每一章的内容爬取:

由于已经将每一章的url都打印出来了,现在以第一章为例:

关于起点小说的爬取

OK拿到源码,先理清思路。request,urlopen将源码爬下来,BeautifulSoup解析源码,得到div标签下class为“read-content j_readContent”的标签内容。

所以得到代码如下:

关于起点小说的爬取

当我们打印获得的txt_soup的内容时候。会得到如下结果:

关于起点小说的爬取

每一章每一章都会自动被爬下来,当然可以用get_text()方法,然后美化一下,同时打印爬下来的目录与每一章的内容

关于起点小说的爬取

得到这样的结果:

关于起点小说的爬取

    关于起点小说的爬取

看起来还挺整齐的!(会发现到后面VIP章节只能爬下来网页上有的,我没有登录也没有购买^_^)

这时候我遇到报错了


unsupported operand type(s) for +: 'NoneType' and 'str'


关于起点小说的爬取


目前还在琢磨中