Python——爬取B站科技区排行并把数据存入Excel

本代码实现从B站科技区抓取Top100排名,并将数据保存至Excel文件,每分钟更新一次,记录排名变化,便于数据分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python——爬取B站科技区排行并把数据存入Excel

本代码可将B站的科技区的top100爬取下来,并将其数据存储到Excel文件中,具有良好的可移植性。
需要的库:

  • requests 用于请求连接到特定网站
  • BeautifulSoup 分析,处理得到的HTML代码
  • xlwt 将得到的数据存入Excel
  • time 延时

下载

直接在命令行中输入pip install+库名即可自动从网上下载安装
代码

import requests
import time
import xlwt
from bs4 import BeautifulSoup
workbook=xlwt.Workbook()
booksheet=workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
#新建Excel文件和工作表  
be=BeautifulSoup
def pa():
	r = requests.get('https://www.bilibili.com/ranking/all/36/1/3/?spm_id_from=333.334.ranking_technology.8')
	#传入URL
	soup = be(r.text, 'html.parser')
	pm_list = soup.find_all('li', attrs = {'class': 'rank-item'})
	# 解析URL
	for pm in pm_list:
		mc=pm.find('div',class_='num').text
		mz=pm.find('a',class_='title').text
		L.append(mc)
		M.append(mz)
	#将数据存入数组中
for x in range(100):
	L=[]
	M=[]
	pa()
	for i in range(len(L)):
		booksheet.write(i,0,L[i])
		booksheet.write(i,x,M[i])
	workbook.save('pc.xls')  
	#将数组中的数据存入当前目录下的Excel
	time.sleep(60)#每分钟爬取一次

更新
加了用时和爬取次数,以后添加数据变化显示

import requests
import time
import xlwt
import datetime
import sys
from bs4 import BeautifulSoup
workbook=xlwt.Workbook()
booksheet=workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
be=BeautifulSoup
for i in range(1,101):
	booksheet.write(i,0,i)
def pa():
	r = requests.get('https://www.bilibili.com/ranking/all/36/1/3/?spm_id_from=333.334.ranking_technology.8')
	soup = be(r.text, 'html.parser')
	pm_list = soup.find_all('li', attrs = {'class': 'rank-item'})
	for pm in pm_list:
		mc=pm.find('div',class_='num').text
		mz=pm.find('a',class_='title').text
		L.append(mc)
		M.append(mz)
mi=0
d1=datetime.datetime.now()
for x in range(100000):
	d2=datetime.datetime.now()
	booksheet.write(0,x+1,str(d2)[11:19])
	L=[]
	M=[]
	pa()
	for i in range(len(L)):
		booksheet.write(i+1,x+1,M[i])
	mi+=1
	sec=str(round((d2-d1).total_seconds()))
	time='已爬取'+str(mi)+'次,用时'+sec+'sec'
	sys.stdout.write("\r%s"%time)
	workbook.save('pc.xls')  
	time.sleep(60)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值