假设已经完成了所有需要的模块的安装
开始爬取“起点小说网”
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'
目前还在琢磨中