Python: urlopen не загружает весь сайт - PullRequest
0 голосов
/ 12 августа 2010

Привет,

Я сделал:

import urllib

site = urllib.urlopen('http://www.weather.com/weather/today/Temple+TX+76504')
site_data = site.read()
site.close()

, но это не сравнимо с просмотром источника при загрузке в Firefox.

Я подозревал, что пользовательский агенти сделал это:

class AppURLopener(urllib.FancyURLopener):
    version = "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.8) Gecko/20100722 Ubuntu/10.04 (lucid) Firefox/3.6.8"

urllib._urlopener = AppURLopener()

и загрузил его, но он по-прежнему не загружает весь сайт.

Может кто-нибудь, пожалуйста, помогите мне переключить пользовательский агент, если это вероятный виновник?

Спасибо, Нарни

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Скорее всего, в коде есть iframe или javascript модифицирует DOM. Если есть iframe, вам придется проанализировать страницу, чтобы получить URL для iframe, или просто сделать это вручную, если он одноразовый. Если это javascript, я слышу, что selenium-rc хорош, но у меня нет опыта из первых рук.

2 голосов
/ 12 августа 2010

загруженная страница, отображаемая локально, может выглядеть по-разному по нескольким причинам, например, наличие относительных ссылок (может быть исправлено добавлением, например, <base href="http://www.weather.com/today/"> в элемент заголовка страницы) или нефункциональных запросов ajax (см. Пути обхода политика того же происхождения ).

...