2016-12-13 3 views
1

Я пытаюсь отказаться от веб-сайта: page I try to crawl. Данные, которые я пытаюсь собрать, это ссылка встраивания видео на 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-ответа найдено руководство, которое дает идентификатор видео YouTube в встроенном javascript, который находится внутри тега сценария ,

часть ответа 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 
+1

Спасибо большое, что я собирался установить селен ... – mel

1

Ищите var vID = "lEXBxijQREo"; в источнике.

Смежные вопросы