1.首先来到B站排行榜页面,按F12分析结构
2.鼠标放在代码上,一行一行往下移动,不要急,给浏览器一点反应时间。
3.当你发现排行榜所在位置被覆盖了,如下图,证明排行榜的代码就在这里
4.接下来,打开隐藏的部分,继续往下找,应该就能找到
- 标签,改标签的主要作用就是显示列表
5.现在 ,目标都出现了
排行,名称,更新状态,播放量,弹幕量,追番数
直接上代码:我会教的,不会python编程也没事 ,照着格式改就OK
1.运行环境配置
首先去安装好python3,然后打开windows的cmd命令窗口
输入pip3 install Beautifulsoup4安装所需的bs4代码模块
再输入pip install requests安装request库
2.正式开始
(1)调用我们下载完成的库文件
import requests from bs4 import BeautifulSoup
(2)定义好主函数
import requests
from bs4 import BeautifulSoup
if __name__=="__main__":
(3)鼠标的光标移到:后面,回车一下(python比较矫情,缩进不对就报错),定义一个函数用来实现功能,我这里定义huoqushuju(),只要是英文串加个()就没问题。
import requests
from bs4 import BeautifulSoup
if __name__=="__main__":
huoqushuju()
(4)接下来,我们在主函数前面写上函数
import requests
from bs4 import BeautifulSoup
def huoqushuju():
return
if __name__=="__main__":
huoqushuju()
(5)代码是死的,不会自己找目标,你要把目标帮它找好,网站地址先来
import requests
from bs4 import BeautifulSoup
def huoqushuju():
url = 'https://www.bilibili.com/v/popular/rank/bangumi'
return
if __name__=="__main__":
huoqushuju()
(6) 爬虫代码是需要像个浏览器一样去访问这个网站的,所以把浏览器头给代码,这就像是一张通关文书
import requests
from bs4 import BeautifulSoup
def huoqushuju():
url = 'https://www.bilibili.com/v/popular/rank/bangumi'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
}
return
if __name__=="__main__":
huoqushuju()
(7)然后把两行标准代码写上去,这个讲不来
import requests
from bs4 import BeautifulSoup
import datetime
def huoqushuju():#B站动漫数据
url = 'https://www.bilibili.com/v/popular/rank/bangumi'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0'
}
page_text = requests.get(url=url, headers=headers).text
soup = BeautifulSoup(page_text, 'lxml')
return
if __name__=="__main__":
huoqushuju()
(8)我们把网页中
- 中包含的
- 全部存进字典(就是拿来放一堆字的地方)
import requests from bs4 import BeautifulSoup import datetime def huoqushuju():#B站动漫数据 url = 'https://www.bilibili.com/v/popular/rank/bangumi' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0' } page_text = requests.get(url=url, headers=headers).text soup = BeautifulSoup(page_text, 'lxml') li_list = soup.select('.rank-list > li') return if __name__=="__main__": huoqushuju()(9) 其实,你要的东西已经都在li_list字典里了,只是还和网页上的代码混在一起,接下来我们把它挑出来写进文件里。
import requests from bs4 import BeautifulSoup def huoqushuju():#B站动漫数据 url = 'https://www.bilibili.com/v/popular/rank/bangumi' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X metaSr 1.0' } page_text = requests.get(url=url, headers=headers).text soup = BeautifulSoup(page_text, 'lxml') li_list = soup.select('.rank-list > li') with open('bZhanRank.txt', 'w', encoding='utf-8') as fp:#文件名bZhanRank.txt,utf-8编码写入文本 for li in li_list:#查看所有li # 解析动漫排行 li_rank = li.find('div', class_='num').string#find是查找,这里找的是class='num'的div中的string格式的文本 li_rank = '动漫排行为:' + li_rank + ' ' # 解析动漫更新状态 li_gengxin = li.find('div', class_='pgc-info').string li_gengxin = '动漫更新状态:' + li_gengxin + ' ' # 解析动漫标题 li_title = li.find('div', class_='info').a.string.strip() li_title = '动漫标题为:' + li_title + ' ' # 解析动漫播放量 li_viewCount = li.select('.detail>span')[0].text.strip()#select是选择,查找的是class='detail'下的第一个标签中的文本 li_viewCount = '动漫播放量为:' + li_viewCount + ' ' # 解析弹幕数量 li_danmuCount = li.select('.detail>span')[1].text.strip() li_danmuCount = '动漫弹幕数量为:' + li_danmuCount + ' ' # 解析动漫综合评分 li_zongheScore = li.find('div', class_='pts').div.string li_zongheScore = '动漫综合评分为:' + li_zongheScore #根据格式写入文件 fp.write(li_rank + li_gengxin + li_title + li_viewCount + li_danmuCount + li_zongheScore + 'n') return if __name__=="__main__": huoqushuju()获取后的数据文件
进阶版链接python爬取网页排行榜数据(进阶版)_yuwoxinanA3的博客-CSDN博客
哪里不懂欢迎留言,两天内会回答



