Скрап Python веб-страницы вызывает проблему JavaScript - PullRequest
0 голосов
/ 03 мая 2018

Я использую urllib2 для очистки веб-страницы. Хорошо работает на многих сайтах, но на некоторых я получаю:

<html><title>You are being redirected...</title>
<noscript>Javascript is required. Please enable javascript before you are allowed to see this page.</noscript>

Вот мой код:

    hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
           'Accept-Encoding': 'none',
           'Accept-Language': 'en-US,en;q=0.8',
           'Connection': 'keep-alive'}

    req = urllib2.Request(url=link, headers=hdr)
    try:
        f = urllib2.urlopen(req)
    except urllib2.HTTPError, e:
        return None
    except urllib2.URLError, e:
        return None
    mycontent = f.read()

Есть идеи?

1 Ответ

0 голосов
/ 03 мая 2018

Это не проблема JavaScript, обратите внимание на первую строку:

<html><title>You are being redirected...</title>

Это означает, что вы должны следовать перенаправлению, пока не достигнете сервера назначения.

urllib2.urlopen не делает этого автоматически, вам нужно вызвать .geturl() для результата или использовать другие функции или библиотеки, которые разрешают перенаправления.

...