1

ただの実践的な質問です。サイトの HTTP ステータス コードと IP アドレスを取得する必要があります。

通常、1 万から 15 万のドメインを解析する必要があるという事実を考えると、どの方法が最も効率的かを考えていました。

urllib2.urlopen(site) を使用すると、ファイルに接続されているファイル ストリーム全体をダウンロードしようとすることがわかりました。同時に、urllibs2 はホスト名を IP に変換する方法を提供していません。

特定のサーバーの HTTP ステータス コードや IP アドレスなどの情報を収集するために HEAD ビットのみに関心がある場合、どのように操作するのが最適ですか?

ソケットのみを使用する必要がありますか? ありがとう

4

1 に答える 1

1

サイトの HTTP ステータス コードと IP アドレスを取得する特定の魔法のツールはないと思います。

HTTP ステータス コードを取得するには、またはまたはrequestsHEADを使用してリクエストを行う必要があります。Python 2 で HEAD HTTP リクエストを送信するにはどうすればよいですか?からの例を次に示します。:urllib2httplib

>>> 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 で Requests を使用して、非同期の HTTP リクエストを簡単に作成できます。

IP アドレスを取得するには、次を使用する必要がありますsocket

 socket.gethostbyname_ex('google.com')

これらのスレッドも参照してください。

それが役立つことを願っています。

于 2013-08-19T20:25:10.063 に答える