这个代码运行结束后不输出结果,但显示在PyCharm运行代码后无法输入也没有输出结果只显示Process finished with exit code 0,请问如何解决?已试过run那种方法好像不适用。
import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor
import time
import pandas as pd
def get_bilibili_url(start,end):
url_list = []
data_list = [i for i in pd.date_range(start,end).strftime('%Y-%m-%d')]
for date in data_list:
url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=186803402&date={date}'
url_list.append(url)
return url_list
def get_bilibili_danmu(url):
headers = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36",
"cookie": "_uuid=EBC95835-C50A-758C-B863-DA8945A860A494799infoc; buvid3=0ED54844-0EB0-41DC-9298-CC13FDA04E8B34762infoc; CURRENT_FNVAL=80; blackside_state=1; rpdid=|(u~)YJ|J)JY0J'uYkkJYYkJu; buvid_fp=0ED54844-0EB0-41DC-9298-CC13FDA04E8B34762infoc; SESSDATA=5c7a3865%2C1639139275%2C90c0e%2A61; bili_jct=d9d8355e156c1b06bbefdca5c863a63d; DedeUserID=276322917; DedeUserID__ckMd5=8e068e9c1acf6b20; sid=b1u62m3g; fingerprint=5f5d381848fb9c5d9172f71dc2540a19; buvid_fp_plain=DD91B0C4-82F9-436C-BE30-EAAF12AAC68D13451infoc; PVID=4; bsource=search_bing; bfe_id=1bad38f44e358ca77469025e0405c4a6"
}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
# print(response.status_code)
soup = BeautifulSoup(response.text, 'lxml')
datas = soup.find_all('d')
file = open('后浪弹幕.txt', 'a')
for data in datas:
text = data.text
print(text)
file.write(text)
file.write('\n')
file.close()
def main():
start = '2020-02-17'
end = '2020-02-20'
url_list = get_bilibili_url(start, end)
# for url in url_list:
# print(url)
with ThreadPoolExecutor(max_workers=1)as executor:
executor.map(get_bilibili_danmu, url_list)
if __name__ == '__main__':
main()
参考博客:https://blog.csdn.net/m0_55030384/article/details/113485863
github:https://github.com/Passkou/bilibili-api
import asyncio
from bilibili_api import video
async def main():
# 实例化 Video 类
v = video.Video(bvid="your BVID")
# 获取信息
danmu_list = await v.get_danmakus(0)
# 打印信息
for d in danmu_list:
print(d)
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
你这个爬取我输出了一下发现没爬取到关键信息,所以也没写进文件
print(response)
response.text没数据,你可以自己打印看看
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m