日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bili弹幕爬

發布時間:2024/3/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bili弹幕爬 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我愛嗶哩嗶哩

總結:
①正則是盲點,最近在想辦法努力突破
②python提取xml文件中的字段,可用beautifulsoup包,nice

# -*- coding: utf-8 -*- """ Created on Sun Mar 1 18:11:56 2020@author: Administrator """ import requests import json import re from lxml import etree from bs4 import BeautifulSoup# 獲取b站謀一個小目錄類的特定時間段內的熱門視頻的全部彈幕 class Bili():def __init__(self):self.url_temp = "https://s.search.bilibili.com/cate/search?&main_ver=v3&search_type=video&view_type=hot_rank&order=click&copy_right=-1&cate_id=28&page={}&pagesize=20&jsonp=jsonp&time_from=20200224&time_to=20200302&_=1583140287400"self.headers = {"user-agent": "Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36"}self.dm_url_part = "https://api.bilibili.com/x/v1/dm/list.so?oid={}"def parse_url(self, url):response = requests.get(url, headers=self.headers)return response.content.decode(encoding="utf-8")def get_content(self, url_str):json_str = json.loads(url_str)ret_list = json_str["result"]#print(ret_list)content_list = []for ret in ret_list:item = {}item["author"] = ret["author"]item["poster-img"] = ret["pic"]item["playNum"] = ret["play"]item["dmNum"] = ret["video_review"]item["href"] = ret["arcurl"]item["rank"] = ret["rank_offset"]item["dm"] = self.get_dm(item["href"])content_list.append(item)page = json_str["page"]total_page = json_str["numPages"]return content_list, page, total_pagedef get_dm(self, detail_url):detail_url = self.parse_url(detail_url)cid = re.search(r'"cid":(\d+)',detail_url).group(1)dm_url = self.dm_url_part.format(cid)dm_str = self.parse_url(dm_url)#beautifulsoup使用不熟練dm_list = BeautifulSoup(dm_str,"lxml").findAll("d")dm_total = []#這里可以完善的三元符未很好掌握for dm in dm_list:dm_new = [re.sub(r'<[^>]*>',"",str(dm))]dm_total.extend(dm_new)return dm_totaldef save_content(self, conent_list, page):file_path = "b站" + str(page) + ".txt"with open(file_path, "a",encoding="utf-8") as f:for content in conent_list:f.write(json.dumps(content, ensure_ascii=False, indent=2))f.write("\n")print("save successfully")def run(self):page = 1total_page = 2while page != total_page:url_temp = self.url_temp.format(page)url_str = self.parse_url(url_temp)# 1.創建首頁url地址conent_list, page, total_page = self.get_content(url_str)# 2.發出請求,獲取數據# 2.1 獲取頁面數據self.save_content(conent_list, page)# 3.提取數據# 4.存儲數據# 5.獲取下一頁地址,# 6重復2-5操作if __name__== "__main__":bili = Bili()bili.run()

-----------------視頻學習 小酥仙 2020.3.3 -----------------------------

總結

以上是生活随笔為你收集整理的bili弹幕爬的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。