今天就跟大家聊聊有關(guān)如何用BeautifulSoup4爬取小說(shuō)資源,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
鎮(zhèn)海網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái)到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。{'玄幻':[['書(shū)名1','作者1','書(shū)鏈接1'], ['書(shū)名2','作者2','書(shū)鏈接2'] ], '恐怖':[['書(shū)名1','作者1','書(shū)鏈接1'], ['書(shū)名2','作者2','書(shū)鏈接2'] ] }
請(qǐng)安裝requests和bs4(BeautifulSoup)
from bs4 import BeautifulSoup import requests,sys sys.setrecursionlimit(10000) # 防止超出遞歸深度報(bào)錯(cuò) Url_Index = 'http://m.pfwx.com' r = requests.get(Url_Index) r.encoding = 'utf-8' content = r.text soup = BeautifulSoup(content,features='html.parser') target = soup.find('div',class_='nav') # 只獲取第一個(gè)包含class='nav'屬性的div標(biāo)簽 tar = target.find_all('a') # 過(guò)濾出a標(biāo)簽 # 獲取index的欄目 Index_Menu = {} for so in tar: TEXT = so.get_text() HREF = Url_Index + so['href'] # 獲取href屬性的值 Index_Menu[TEXT] = HREF # 獲取分類(lèi) Class_Page = Index_Menu['分類(lèi)'] r = requests.get(url=Class_Page) r.encoding = 'utf-8' content = r.text soup = BeautifulSoup(content,features='html.parser') tag = soup.body.find_all('li',class_='prev') Menu = {} for so in tag: TEXT = so.get_text() # 獲取文本 HREF = so.a.attrs['href'] # 獲取a標(biāo)簽中的href屬性 # 生成各個(gè)分類(lèi)的Url Category_Url = Url_Index + HREF Menu[TEXT] = Category_Url # 獲取每種分類(lèi)的書(shū)信息 for ClassName in Menu: Book_List = [] def make(url): '''獲取所有的書(shū)信息,并且交給函數(shù)IF判斷是否還有下一頁(yè),如果有則繼續(xù)獲取書(shū)的信息''' r = requests.get(url=url) content = r.text soup = BeautifulSoup(content, features='html.parser') target = soup.find_all('a', class_='blue') for so in target: BookName = so.get_text() # 書(shū)名 IMHOW_NAME = so.next_sibling.split('/')[1] # 作者名 HREF = Url_Index + so['href'] # 書(shū)的鏈接 Book_List.append([BookName,IMHOW_NAME,HREF]) Next_Page = soup.find('div', class_='page') IF(NextPage=Next_Page) def IF(NextPage): '''判斷是否還有下一頁(yè),如果有則繼續(xù)循環(huán)''' for Page in NextPage.find_all('a'): if Page.get_text() == '下頁(yè)': '''判斷如果還有下頁(yè),則繼續(xù)獲取書(shū)的信息''' Url = Url_Index + Page['href'] make(url=Url) url=Menu[ClassName] # 獲取當(dāng)前分類(lèi)的URL make(url) # 獲取當(dāng)前分類(lèi)的所有書(shū)信息 Menu[ClassName] = Book_List # 最后生成的信息都在這個(gè)字典里面;格式{'玄幻':[['書(shū)名1','作者1','書(shū)鏈接1'],['書(shū)名2','作者2','書(shū)鏈接2']]}
看完上述內(nèi)容,你們對(duì)如何用BeautifulSoup4爬取小說(shuō)資源有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。