抓取一个 youtube 页面 returns 空列表
Scraping a youtube page returns empty list
我一直在尝试从这个 YouTube 页面上抓取链接。 .但是,链接变量是空的。我做错了什么??
我认为问题在于您尝试查找 link 的方式。当我 curl
和你一样 url curl https://www.youtube.com/results\?search_query\=hello
我没有得到任何带有 css 元素的 a
标签。这似乎是基于 header 中设置的 User-Agent
属性。
所以有几个选项:
更改您查找视频的方式 link。
这就是我的 curl
的视频 links 标记的样子
<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 上使用某种正则表达式来查找包含正确格式的 href
page.find_all("a", {'href': re.compile('/watch?v=[A-Za-z0-9_\-]`)})
(您将不得不弄乱正则表达式,它并不完美
-
我想说这将是首选的方法,只是猜测您正在尝试做什么。具体来说 search api 他们甚至有 python 片段
我一直在尝试从这个 YouTube 页面上抓取链接。 .但是,链接变量是空的。我做错了什么??
我认为问题在于您尝试查找 link 的方式。当我 curl
和你一样 url curl https://www.youtube.com/results\?search_query\=hello
我没有得到任何带有 css 元素的 a
标签。这似乎是基于 header 中设置的 User-Agent
属性。
所以有几个选项:
更改您查找视频的方式 link。
这就是我的 curl
的视频 links 标记的样子<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 上使用某种正则表达式来查找包含正确格式的 href
page.find_all("a", {'href': re.compile('/watch?v=[A-Za-z0-9_\-]`)})
(您将不得不弄乱正则表达式,它并不完美
-
我想说这将是首选的方法,只是猜测您正在尝试做什么。具体来说 search api 他们甚至有 python 片段