Как получить правильный HTML-код с конкретного URL (python) - PullRequest
0 голосов
/ 08 июня 2011

Я пытаюсь написать код, который сможет подтвердить домен через whois.domaintools.com.

Но есть небольшая проблема с чтением HTML, которая не совпадает с whois.domaintools.com/notregistereddomain.com исходный код.В чем дело?Его проблема с требованием или что?Я действительно не знаю, как ее решить.

import urllib2

def getPage():
    url="http://whois.domaintools.com/notregistereddomain.com"

    req = urllib2.Request(url)

    try:
        response = urllib2.urlopen(req)
        return response.read()
    except urllib2.HTTPError, error:
        print "error: ", error.read()
        a = error.read()
        f = open("URL.txt", "a")
        f.write(a)
        f.close()


if __name__ == "__main__":
    namesPage = getPage()
    print namesPage

1 Ответ

2 голосов
/ 08 июня 2011

Если вы используете print error вместо print error.read(), вы увидите, что вы получаете HTTP 403 «Запрещенный» ответ от сервера.

Очевидно, что этот сервер не любит запросы без заголовка пользовательского агента (или ему не нравится заголовок Python, потому что он не хочет запрашиваться из скрипта). Вот обходной путь:

user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" # Or any valid user agent from a real browser
headers = {"User-Agent": user_agent}
req = urllib2.Request(url, headers=headers)
res = urllib2.urlopen(req)
print res.read()
...