【发布时间】:2021-07-14 03:07:41
【问题描述】:
def url_search(self, search_string, max_search):
textToSearch = search_string
query = urllib.parse.quote(textToSearch)
url = "https://www.youtube.com/results?search_query=" + query
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'lxml')
i = 1
for vid in soup.findAll(attrs={'class':'yt-uix-tile-link'}):
if len(self.dict) < max_search:
self.dict[i] = 'https://www.youtube.com' + vid['href']
i += 1
else:
break
我正在尝试使用 BS4 从 youtube 搜索结果页面获取视频 href
我相信这个问题是soup.findAll(attrs={'class':'yt-uix-tile-link'}): 被返回为无。我不太确定。帮助解决这个问题,或者他可能会感谢其他方法和想法。
【问题讨论】:
-
你能在你的函数中添加一个测试调用,使它成为一个最小的、可重现的例子
-
如果 findAll 条目返回 none 则表明它没有找到任何东西,也请重命名为 bs4 findAll 返回 none
-
还将您的代码示例调整为一个独立的函数,以便人们可以将其复制并粘贴到他们的调试环境中,以便更轻松地为您提供帮助
-
这能回答你的问题吗? Scraping YouTube links from a webpage
标签: python web web-scraping beautifulsoup youtube