Python 用BeautifulSoup抓取新的YouTube视频
我是python新手,我想进入YouTube上的网页抓取。 我想用这个链接上传最新的视频:'https://www.youtube.com/results?search_query=programming&sp=CAISBAgBEAE%253D我还想抓拍新的5部视频。我该怎么做? 我已经使用这段代码来测试它(我只想要链接)Python 用BeautifulSoup抓取新的YouTube视频,python,python-3.x,web-scraping,beautifulsoup,youtube,Python,Python 3.x,Web Scraping,Beautifulsoup,Youtube,我是python新手,我想进入YouTube上的网页抓取。 我想用这个链接上传最新的视频:'https://www.youtube.com/results?search_query=programming&sp=CAISBAgBEAE%253D我还想抓拍新的5部视频。我该怎么做? 我已经使用这段代码来测试它(我只想要链接) 编辑:我没有从python终端得到任何响应。它没有刮任何东西。它只有默认的“>>>”如果不使用Googles YouTube API密钥,您就无法抓取YouTube,您可以通
编辑:我没有从python终端得到任何响应。它没有刮任何东西。它只有默认的“>>>”如果不使用Googles YouTube API密钥,您就无法抓取YouTube,您可以通过这样做来获取该密钥。如果你还想试试的话,我可以给你一个合法的答案 同时,尝试在这个网站上使用beautifulsoup来练习解析 这里有一些代码可以帮助您开始
def get_source(url):
return BeautifulSoup(requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, verify=False).text, 'html.parser')
soup = get_source('http://videvo.net')
for tags in soup.find_all('a'):
print(tags['href'])
快乐编码
编辑
我(稍微)站直了。无法解析Youtube的主url。你可以试试这个代码
def get_source(url):
return BeautifulSoup(requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, verify=False).text, 'html.parser')
soup = get_source('https://www.youtube.com/feeds/videos.xml?user=kinagrannis')
for entry in soup.find_all("entry"):
for title in entry.find_all("title"):
print(title.text)
for link in entry.find_all("link"):
print(link["href"])
for name in entry.find_all("name"):
print(name.text)
for pub in entry.find_all("published"):
print(pub.text)
注意:您可以输入任何用户名而不是“kinnagrannis”,user=[用户名]您可以这样做:
- 使用
库或请求HTML
selenium
- 使用
regex
- 使用YouTube搜索引擎结果API从
https://www.youtube.com/watch?v=OUnxJk3Bphk
https://www.youtube.com/watch?v=vWvtt1ESNeY
https://www.youtube.com/watch?v=b8OIZu5y_Ak
https://www.youtube.com/watch?v=xp3fHaT2_VE
https://www.youtube.com/watch?v=e9toQAcjOrw
https://www.youtube.com/watch?v=em0Is0nyaXA
https://www.youtube.com/watch?v=N5JVTUAGmAM
https://www.youtube.com/watch?v=a0hQG-UdhYc
https://www.youtube.com/watch?v=SmQFxQ1fa2o
https://www.youtube.com/watch?v=uuMS1FYLgWQ
https://www.youtube.com/watch?v=8WJ-zSE32ZY
https://www.youtube.com/watch?v=c5MtH-xDspg
https://www.youtube.com/watch?v=5Xktqz6VUTU
https://www.youtube.com/watch?v=Wbo6j_iq2XY
https://www.youtube.com/watch?v=8eu9nliySO4
https://www.youtube.com/watch?v=j28PjOy_uk8
https://www.youtube.com/watch?v=fM2Ordt8Q9E
https://www.youtube.com/watch?v=tFSkaIVyNno
https://www.youtube.com/watch?v=1hDXlc2C3Rw
https://www.youtube.com/watch?v=vH9_Eo7VW3c
使用不带无头浏览器的
regex
您需要访问var ytInitialData
元素,然后在“commandMetadata”
中找到视频的URL{“URL”:“/watch?v=Ae2TRkpjRCc”,…..
这里是一个起点,它将获取上的所有内部var ytInitialData
或者,您也可以从SerpApi使用 要集成的代码:
from serpapi import GoogleSearch
params = {
"engine": "youtube",
"search_query": "programming",
"sp": "CAISBAgBEAE%253D",
"api_key": "your_secret_api_key"
}
search = GoogleSearch(params)
results = search.get_dict()
for link in results['video_results']:
print(f"Title: {link['title']}\nLink: {link['link']}\n")
输出:
Title:ClassVIII基本HTML标记和编程15 4 101`
链接:https://www.youtube.com/watch?v=KIPp63tXKpU
标题:c编程中的For循环#BSSDEClasses
链接:https://www.youtube.com/watch?v=nfRN0x9VvQc
标题:[C#]编程NatsukiBot
链接:https://www.youtube.com/watch?v=chnigx-ezwg
标题:CS201简短讲座-03 | VU简短讲座|编程入门(乌尔都语/印地语)
链接:https://www.youtube.com/watch?v=qoxXJchd7N4
标题:C语言编程-While语句
链接:https://www.youtube.com/watch?v=cl0OpNCdF5I
标题:html和基本编程简介
链接:https://www.youtube.com/watch?v=A4We3NGqxuA
标题:Printf和Scanf函数的使用|第7部分| C编程| PadhoChalo
链接:https://www.youtube.com/watch?v=578xS-Ugc2c
题目:C++课程已经开始了计算机编程
链接:https://www.youtube.com/watch?v=SjFgTK2HqbE
标题:三菱欧蓝德2008 prox/twist转发器钥匙编程提示
链接:https://www.youtube.com/watch?v=HlSJcBwxKFQ
标题:计算机编程1-课程简介
链接:https://www.youtube.com/watch?v=xdmPbhTT01g
标题:Python中的编程、数据结构和算法
链接:https://www.youtube.com/watch?v=0fUddu9cdAU
免责声明,我为SerpApi工作
寻求调试帮助的问题(“此代码为什么不工作?”)应包括所需的行为、特定的问题或错误以及将其复制为格式化文本(而不是图像)所需的最短代码在问题本身中。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我认为您的主要问题是没有将Header={“User Agent”:“Mozilla/5.0”}作为标题传递。这有助于克服一些障碍。
from requests_html import HTMLSession
session = HTMLSession()
url = "https://www.youtube.com/results?search_query=programming&sp=CAISBAgBEAE%253D"
response = session.get(url)
response.html.render(sleep=1, keep_page = True, scrolldown = 2)
for links in response.html.find('a#video-title'):
link = next(iter(links.absolute_links))
print(link)
from serpapi import GoogleSearch
params = {
"engine": "youtube",
"search_query": "programming",
"sp": "CAISBAgBEAE%253D",
"api_key": "your_secret_api_key"
}
search = GoogleSearch(params)
results = search.get_dict()
for link in results['video_results']:
print(f"Title: {link['title']}\nLink: {link['link']}\n")