You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
820 B
23 lines
820 B
2 months ago
|
import requests
|
||
|
from bs4 import BeautifulSoup
|
||
|
|
||
|
|
||
|
def get_video_ids(keyword, num_videos):
|
||
|
video_ids = []
|
||
|
page_num = (num_videos - 1) // 20 + 1
|
||
|
base_url = "https://search.bilibili.com/all?keyword={}&order=totalrank&duration=0&tids_1=0&page={}"
|
||
|
for page in range(1, page_num + 1):
|
||
|
url = base_url.format(keyword, page)
|
||
|
response = requests.get(url)
|
||
|
soup = BeautifulSoup(response.text, 'html.parser')
|
||
|
video_tags = soup.find_all('li', {'class': 'video-item matrix'})
|
||
|
for tag in video_tags:
|
||
|
video_id = tag.get('data - aid')
|
||
|
if video_id:
|
||
|
video_ids.append(video_id)
|
||
|
if len(video_ids) >= num_videos:
|
||
|
break
|
||
|
if len(video_ids) >= num_videos:
|
||
|
break
|
||
|
return video_ids
|