Python如何爬取b站热门视频并导入Excel
代码如下
#encoding:utf-8 importrequests fromlxmlimportetree importxlwt importos #爬取b站热门视频信息 defspider(): video_list=[] url="https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3" html=requests.get(url,headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/75.0.3770.100Safari/537.36"}).text html=etree.HTML(html) infolist=html.xpath("//li[@class='rank-item']") foritemininfolist: rank="".join(item.xpath("./div[@class='num']/text()")) video_link="".join(item.xpath(".//div[@class='info']/a/@href")) title="".join(item.xpath(".//div[@class='info']/a/text()")) payinfo="".join(item.xpath(".//div[@class='detail']/span/text()")).split("万") play=payinfo[0]+"万" comment=payinfo[1] ifcomment.isdigit()==False: comment+="万" upname="".join(item.xpath(".//div[@class='detail']/a/span/text()")) uplink="http://"+"".join(item.xpath(".//div[@class='detail']/a/@href")) hot="".join(item.xpath(".//div[@class='pts']/div/text()")) video_list.append({ 'rank':rank, 'videolink':video_link, 'title':title, 'play':play, 'comment':comment, 'upname':upname, 'uplink':uplink, 'hot':hot }) returnvideo_list defwrite_Excel(): #将爬取的信息添加到Excel video_list=spider() workbook=xlwt.Workbook()#定义表格 sheet=workbook.add_sheet("b站热门视频")#添加sheet的name xstyle=xlwt.XFStyle()#实例化表格样式对象 xstyle.alignment.horz=0x02#字体居中 xstyle.alignment.vert=0x01 head=['视频名','up主','排名','热度','播放量','评论数'] forhinrange(len(head)): sheet.write(0,h,head[h],xstyle) i=1 foriteminvideo_list: #向单元格(视频名)添加该视频的超链接 if'"'initem["title"]: item["title"]=item["title"].split('"')[1] title_data='HYPERLINK("'+item["videolink"]+'";"'+item["title"]+'")'#设置超链接 sheet.col(0).width=int(256*len(title_data)*3/5)#设置列宽 sheet.write(i,0,xlwt.Formula(title_data),xstyle) name_data='HYPERLINK("'+item["uplink"]+'";"'+item["upname"]+'")' sheet.col(1).width=int(256*len(name_data)*3/5) sheet.write(i,1,xlwt.Formula(name_data),xstyle) sheet.write(i,2,item["rank"],xstyle) sheet.write(i,3,item["hot"],xstyle) sheet.write(i,4,item["play"],xstyle) sheet.write(i,5,item["comment"],xstyle) i+=1 #如果文件存在,则将其删除 file="b站热门视频信息.xls" ifos.path.exists(file): os.remove(file) workbook.save(file) if__name__=='__main__': write_Excel()
结果展示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。