1

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

鉴于我通常需要解析 10k 和 150k 域之间的事实,我想知道哪种方法最有效。

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

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

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

4

1 回答 1

1

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

要获取 HTTP 状态代码,您应该HEAD使用urllib2orhttplibrequests发出请求。这是一个示例,取自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')

另请参阅这些线程:

希望有帮助。

于 2013-08-19T20:25:10.063 回答