【发布时间】:2018-06-26 20:47:46
【问题描述】:
【问题讨论】:
标签: python youtube beautifulsoup screen-scraping
【问题讨论】:
标签: python youtube beautifulsoup screen-scraping
我认为问题在于您尝试查找链接的方式。当我curl和你curl https://www.youtube.com/results\?search_query\=hello相同的url时
我没有得到任何带有这些 css 元素的 a 标签。这似乎基于标题中设置的User-Agent 属性。
所以有几个选择:
更改查找视频链接的方式。
这就是我的 curl 的视频链接标记的样子
<a href="/watch?v=YQHsXMglC9A" class="yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink spf-link " data-sessionlink="itct=CFcQ3DAYASITCLfbt4P439gCFQzYfgodkDYKVij0JFIFaGVsbG8" title="Adele - Hello" aria-describedby="description-id-484065" rel="spf-prefetch" dir="ltr">Adele - Hello</a>
如您所见,这些类在此处不存在。
但是,您可以在 href 上使用某种正则表达式来查找包含正确格式的正则表达式
page.find_all("a", {'href': re.compile('/watch?v=[A-Za-z0-9_\-]`)})
(你将不得不弄乱它不完美的正则表达式
我会说这只是猜测您要做什么的首选方法。特别是 search api 他们甚至有 python sn-ps
【讨论】:
curl https://www.youtube.com/results\?search_query\=hello