今天就跟大家聊聊有关如何用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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。