標籤:close amp lis color bs4 image content select .text
今天同事問我有沒有網站可以下載小說,我說沒有啊 你要找哪個小說(心裡有點鄙視他 ,心想現在什麼小說在網上不是都能找到嗎,自信搜尋能力的我準備幫人幫到底)他說,《醫聖之最強狂兵》,我當然沒看過了,搜尋了半天只找到了一些人分享的網盤地址,點進去發現裡面只有前幾章的txt,——預知後事如何請加下面VX….$%#^%&^&&a
我一臉天真的加了一下,還以為是只想湊點擊率和關注量的分享小說的公眾號,結果是個人帳號,=。=,對,就如你所想,六塊錢紅包她就會發給我小說。
算了吧,有那錢幹點啥不好,自己又不是不會爬蟲。
於是隨手寫了下面的程式。
# -*- coding: utf-8 -*-from bs4 import BeautifulSoupimport requestsimport codecsdef 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_listdef get_data(url): html = requests.get(url) soup = BeautifulSoup(html.content, ‘lxml‘) fo = codecs.open(‘output.txt‘, ‘a+‘, ‘utf-8‘); # 以二進位寫入章節題目 需要轉換為utf-8編碼,否則會出現亂碼 #Python學習群125240963 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檔案交給他的時候,他是內牛滿面的=。=
因為程式太簡單了,所以就不做詳細的說明了。
如果有任何問題可以在下方留言交流或者自行Google
閑來無事,用Python隨便寫了三十行代碼來爬兩本小說看看