有效地检索IP地址和状态代码

时间:2013-08-19 20:05:28

标签: sockets python-2.7

只是一个实际的问题。我确实需要检索站点的HTTP状态代码以及IP地址。

鉴于我通常需要在10k到150k域之间进行解析,我想知道哪种方法最有效。

我已经看到使用urllib2.urlopen(站点)尝试下载连接到该文件的整个文件流。同时urllibs2不提供将主机名转换为IP的方法。

鉴于我只对HEAD位感兴趣,以收集HTTP状态代码和特定服务器的IP地址等信息,最佳操作方式是什么?

我应该尝试只使用套接字吗?感谢

1 个答案:

答案 0 :(得分:1)

我认为没有一个特殊的魔术工具可以检索网站的HTTP状态代码和IP地址。

要获取HTTP状态代码,您应使用HEADurllib2requests发出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')

另见这些主题:

希望有所帮助。

相关问题