今天就跟大家聊聊有關如何用BeautifulSoup4爬取小說資源,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
{'玄幻':[['書名1','作者1','書鏈接1'],
['書名2','作者2','書鏈接2']
],
'恐怖':[['書名1','作者1','書鏈接1'],
['書名2','作者2','書鏈接2']
]
}請安裝requests和bs4(BeautifulSoup)
from bs4 import BeautifulSoup
import requests,sys
sys.setrecursionlimit(10000) # 防止超出遞歸深度報錯
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') # 只獲取第一個包含class='nav'屬性的div標簽
tar = target.find_all('a') # 過濾出a標簽
# 獲取index的欄目
Index_Menu = {}
for so in tar:
TEXT = so.get_text()
HREF = Url_Index + so['href'] # 獲取href屬性的值
Index_Menu[TEXT] = HREF
# 獲取分類
Class_Page = Index_Menu['分類']
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標簽中的href屬性
# 生成各個分類的Url
Category_Url = Url_Index + HREF
Menu[TEXT] = Category_Url
# 獲取每種分類的書信息
for ClassName in Menu:
Book_List = []
def make(url):
'''獲取所有的書信息,并且交給函數IF判斷是否還有下一頁,如果有則繼續獲取書的信息'''
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() # 書名
IMHOW_NAME = so.next_sibling.split('/')[1] # 作者名
HREF = Url_Index + so['href'] # 書的鏈接
Book_List.append([BookName,IMHOW_NAME,HREF])
Next_Page = soup.find('div', class_='page')
IF(NextPage=Next_Page)
def IF(NextPage):
'''判斷是否還有下一頁,如果有則繼續循環'''
for Page in NextPage.find_all('a'):
if Page.get_text() == '下頁':
'''判斷如果還有下頁,則繼續獲取書的信息'''
Url = Url_Index + Page['href']
make(url=Url)
url=Menu[ClassName] # 獲取當前分類的URL
make(url) # 獲取當前分類的所有書信息
Menu[ClassName] = Book_List # 最后生成的信息都在這個字典里面;格式{'玄幻':[['書名1','作者1','書鏈接1'],['書名2','作者2','書鏈接2']]}看完上述內容,你們對如何用BeautifulSoup4爬取小說資源有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。