2011-06-08 68 views
0

我试图编写一个代码,这将能够通过whois.domaintools.com验证域。如何从一个具体的URL(python)获得正确的HTML代码

但是,阅读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 

回答

2

如果使用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() 
相关问题