Python - получить динамический контент, используя urllib2 - PullRequest
2 голосов
/ 10 декабря 2011

Я пытаюсь встроить ссылки на YouTube в веб-страницу.Когда я получаю страницу, используя urllib2, я не вижу ссылки в ответе.Я думаю, что встроенное видео извлекается скриптом на странице, который загружается, когда я использую браузер.Как получить то же самое, используя pyll's urllib2?

Пример веб-страницы: http://busymovies.appspot.com/News.html?id=2965032

Ответы [ 2 ]

3 голосов
/ 10 декабря 2011

Для извлечения динамически генерируемого (с использованием JavaScript) контента вы можете использовать selenium :

#!/usr/bin/env python
from contextlib import closing
from selenium.webdriver import Firefox # pip install selenium

url = "http://busymovies.appspot.com/News.html?id=2965032"

# use firefox to get page with javascript generated content
with closing(Firefox()) as browser:
    browser.get(url)
    link = browser.find_element_by_link_text("Direct Link")
    print link.get_attribute("href")

выход

http://www.youtube.com/v/nLJYkat4HpE&hl=en_US&feature=player_embedded&version=3
0 голосов
/ 10 декабря 2011

Прямо под видео есть ссылка «Прямая ссылка».Теперь, если вы откроете исходный код, вы увидите его структуру.

enter image description here

Все, что вам нужно сделать, - это проанализировать HTML-код и добраться до этого узла с помощью id=directlink.Для этого вы можете использовать BeautifulSoup .Вы все настроены ...

...