? ? ? ? ?現(xiàn)在很多小說都是收費或者在線看的,對于我們地鐵族特別不方便,所以寫個爬蟲生成一個小說的txt文本,這樣就簡單方便多了。
? ? ? ? ?話不多說,開始教程。先看看我們要準備的有哪些工具:
????????1、Python3.6,我使用的是3.6版本
????????2、requests,強大好用的第三方庫,使用pip install requests安裝。官方中文教程地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
????????3、BeautifulSoup,另一個強大的庫,使用pip install?BeautifulSoup安裝。官方中文教程地址:http://beautifulsoup.readthedocs.io/zh_CN/latest/
? ? ? ? 現(xiàn)在,我們就要利用這些工具,開始我們的實戰(zhàn)。
? ? ? ? 首先,我們要選擇一個爬取的對象,我選擇了筆趣閣(http://www.biqugew.com/),它可以免費在線看,但不提供下載。我們先用requests看看能從網(wǎng)站上得到些什么?

? ? ? ? ?代碼很簡單,一看就能懂,我先看看小說的一個章節(jié)頁面有什么花樣,用requests.get(url)的方法得到了網(wǎng)站返回給我的信息,我再把信息打印出來,看看是些什么?? ? ??

? ? ? ? 是一些網(wǎng)站的信息,小說的內(nèi)容、連接的地址和。。。咦那一連串亂七八糟的是啥?這里也不賣關(guān)子了,我們使用req.encoding返回得到req原來是ISO-8859-1編碼格式,不能識別中文,這里手動修改一下編碼req.enconding = 'gbk',再看看效果。

? ? ? ? 哈,能看到小說正文了。
? ? ? ? 但,我只需要小說的那部分,并不需要其他亂七八糟的東西,這個時候就要用到BeautifulSoup(之后簡稱bs)了。我看到正文的內(nèi)容都有一個標簽<div id="content">,那么我使用bs看看 ,能不能把所有的id="content"的內(nèi)容都找出來,貼代碼。

? ? ? ? ?看看效果:

? ? ? ? 非常優(yōu)秀!但是這只是小說里的其中一個章節(jié),我不可能手動去下載每個章節(jié),我們退回到上一層,看看小說的目錄有什么貓膩。

? ? ? ? 這里能看到有個標簽<div id='"list">,里面有所有的章節(jié)和對應(yīng)的地址,我們同樣用BeautifulSoup把這些內(nèi)容都找到。
? ? ? ? 現(xiàn)在,我們有了所有的章節(jié)目錄和地址,那么寫一個循環(huán)再將內(nèi)容存儲在本地的txt中,一個免費離線小說就生成了。
? ? ? ? 寫在最后:本人第一次寫教程,手感的確生疏,可能思考方式也會片面,有任何錯誤或者可以改良的地方,歡迎指出。附上代碼地址:https://github.com/Jason0306/pc/blob/master/bg_1.py
? ??????