只是一个实际的问题。我确实需要检索站点的HTTP状态代码以及IP地址。
鉴于我通常需要在10k到150k域之间进行解析,我想知道哪种方法最有效。
我已经看到使用urllib2.urlopen(站点)尝试下载连接到该文件的整个文件流。同时urllibs2不提供将主机名转换为IP的方法。
鉴于我只对HEAD位感兴趣,以收集HTTP状态代码和特定服务器的IP地址等信息,最佳操作方式是什么?
我应该尝试只使用套接字吗?感谢
答案 0 :(得分:1)
我认为没有一个特殊的魔术工具可以检索网站的HTTP状态代码和IP地址。
要获取HTTP状态代码,您应使用HEAD
或urllib2
或requests发出httplib
个请求。以下是一个示例,取自How do you send a HEAD HTTP request in Python 2?:
>>> import urllib2
>>> class HeadRequest(urllib2.Request):
... def get_method(self):
... return "HEAD"
...
>>> response = urllib2.urlopen(HeadRequest("http://google.com/index.html"))
使用requests
:
>>> import requests
>>> requests.head('http://google.com').status_code
301
另外,您可能需要查看grequests,以便从多个页面获取状态代码来加快速度。
GRequests允许您使用带有Gevent的请求来实现异步 HTTP请求很容易。
要获取IP地址,您应该使用socket
:
socket.gethostbyname_ex('google.com')
另见这些主题:
希望有所帮助。