2016-12-13 233 views
1

我试图报废一个网站:page I try to crawl。 我试图收集的数据是YouTube页面中嵌入的YouTube视频的链接。问题是,当我使用的urllib2我不能执行JS,所以该链接不会出现在我的代码:嵌入式YouTube视频报废链接

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

难道我有一个方法来检索这个链接,而无需使用其他库报废本网站? (几乎所有我的履带已经实现,我只需要嵌入视频的YouTube链接)

回答

1

经过整个HTML响应后,发现在一个脚本标记内嵌入javascript的youtube视频id 。 HTML响应的

部分(其给出视频Id)的:

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) 

其产生:

<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

vID = "lEXBxijQREo" 

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

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

非常感谢我即将安装硒...... – mel

1

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