今天同事問我有沒有網站可以下載小說,我說沒有啊 你要找哪個小說(心裏有點鄙視他 ,心想現在什麼小說在網上不是都能找到嗎,自信搜索能力的我準備幫人幫到底)他說,《醫聖之最強狂兵》,我當然沒看過了,搜索了半天只找到了一些人分享的網盤地址,點進去發現裏面只有前幾章的txt,——預知後事如何請加下面VX….$%#^%&^&&a
我一臉天真的加了一下,還以爲是隻想湊點擊率和關注量的分享小說的公衆號,結果是個人賬號,=。=,對,就如你所想,六塊錢紅包她就會發給我小說。
算了吧,有那錢乾點啥不好,自己又不是不會爬蟲。
於是隨手寫了下面的程序。
網站如下
http://www.biqugecom.com/34/34055/
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
import codecs
def get_url_list(url):
html = requests.get(url)
soup = BeautifulSoup(html.content, 'lxml')#content如果換成text會有亂碼
url_list = []
list = soup.select("#list > dl > dd > a")
for i in list:
i = i.get("href")
i = 'http://www.biqugecom.com' + i
url_list.append(i)
url_list = url_list[9:-1]
print url_list
return url_list
def get_data(url):
html = requests.get(url)
soup = BeautifulSoup(html.content, 'lxml')
fo = codecs.open('output.txt', 'a+', 'utf-8');
# 以二進制寫入章節題目 需要轉換爲utf-8編碼,否則會出現亂碼
section_name = soup.select("#wrapper > div.content_read > div > div.bookname > h1")[0].text
print section_name
fo.write(('\r\n' + section_name + '\r\n'))
section_text = soup.select("#content")
for x in section_text:
a = x.text.replace('readx();', '').replace('www.biqugecom.com/20/20341/', '')
fo.write((a)+ '\r\n')
# 以二進制寫入章節內容
fo.close() # 關閉小說文件
if '__main__' == __name__:
url = 'http://www.biqugecom.com/34/34055/'
url_list = get_url_list(url)
for n in url_list:
get_data (n)
最後將3.24MB的txt文件交給他的時候,他是內牛滿面的=。=
因爲程序太簡單了,所以就不做詳細的說明了。
如果有任何問題可以在下方留言交流或者自行谷歌