功能描述;爬取B站的番劇排名資訊
程式設計:
- 擷取B站排名資訊的HTML文本内容
- 解析HTML文本擷取排名、番劇名稱等資訊
- 将擷取到的資訊存儲到檔案中
代碼:
#爬取B站番劇排名等資訊,并将排名資訊存儲到檔案中
import requests,bs4
from bs4 import BeautifulSoup
def getHTMLText(url):
try:
r=requests.get(url,headers={'User-Agent':'Mozilla/5.0'})
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
def parseHTML(demo,file_path):
soup=BeautifulSoup(demo,"html.parser")
f=open(file_path,'w')
for li in soup.find_all('li','rank-item'):
info_dict={}
try:
rank=li.find('div','num').string #排名
info_div=li.find('div','info')
count=info_div.find('div','bangumi-info').string #集數
data_span=info_div.find_all('span','data-box') #其他資訊
#排名,集數,番劇名,播放量,彈幕量,追番量,綜合得分
info_dict.update({
"排名":rank,
"集數":count,
"番劇名":info_div.find('a').string,
"播放量":data_span[0].contents[1],
"彈幕量":data_span[1].contents[1],
"追番量":data_span[2].contents[1],
"綜合評分":info_div.find('div','pts').find('div').string,
})
f.write(str(info_dict)+'\n')
except:
continue
f.close()
print("爬取完畢!")
def main():
url='https://www.bilibili.com/ranking/bangumi/13/0/3'
file_path="D://哔哩哔哩番劇排名.txt" #儲存路徑
demo=getHTMLText(url)
parseHTML(demo,file_path)
main()
效果:

轉載于:https://www.cnblogs.com/BUPT-MrWu/p/11349176.html