Link 的嵌入 YouTube 视频抓取

Link of embed youtube video scraping

我正在尝试抓取一个网站:page I try to crawl。 我要收集的数据是他们页面中嵌入的 youtube 视频的 link。问题是当我使用 urllib2 时我无法执行 js,所以 link 没有出现在我的代码中:

response = OPENER.open("https://www.hopenglish.com/how-sugar-affects-the-brain?ref=category")
html_text = response.read() 
print html_text

我是否有办法在不使用其他库抓取该网站的情况下检索此 link? (几乎所有的爬虫都已经实现了,我只需要嵌入视频的youtubelink)

在完成整个 HTML 响应后,找到了在内联 javascript 中提供 YouTube 视频 ID 的线索,它位于脚本标签内。

HTML 响应的一部分(提供视频 ID):

<script type="text/javascript" language="javascript">
                var vID = "lEXBxijQREo";
                var srt_name = "sugaraffectsbrain";
                var user_id = 0;
                var post_id = 8349;
                var share_link = 'https://www.hopenglish.com/how-sugar-affects-the-brain';
                var share_img_link = 'https://s3-ap-northeast-1.amazonaws.com/hopenglish/wp/wp-content/uploads/2014/10/how-sugar-affects-the-brain.jpg';
            </script>

从上面的 HTML 响应中,使用正则表达式检索 vID 值,如下所示:

import urllib2
import re

response = urllib2.urlopen("https://www.hopenglish.com/how-sugar-affects-the-brain?ref=category")
html_text = response.read() 
# print html_text

m = re.search('vID = "(.*?)"', html_text)
print m.group(0)

产生:

vID = "lEXBxijQREo"

您可以将 vID 值 lEXBxijQREo 附加到 youtube.com 域,如下所示:

https://www.youtube.com/watch?v=lEXBxijQREo

在源中查找 var vID = "lEXBxijQREo";