首先,對於那些由於魚腥而降低了問題的人:這就是谷歌所做的。我非常感謝他們這樣做。就我們所知,這位先生或女士正在構建更好的搜索引擎,我們將從現在開始使用8年。
但是正如Rogue Coder所說:我們不應該全部這樣不小心做到這一點。
關於這個問題:你不能得到一個域的標題。您可以通過將HTTP請求完成到一個URL來獲取標題。
至於解決方案:你可以使用python與許多http庫中的一個,比如httplib中內置的。由於請求數量衆多,您將需要使用線程來並行執行多個請求。下面的例子太簡單了。在現實生活中,你會使用一個線程池。另外,有許多同時連接帶來了自己的問題。所以:你想要多快?
import httplib
from threading import Thread
import time
hosts = [ 'www.google.com', 'www.yahoo.com', 'nos.nl' ]
responses = {}
class StatusChecker(Thread):
def __init__(self, hostname):
Thread.__init__(self)
self.hostname = hostname
def run(self):
conn = httplib.HTTPConnection(self.hostname)
conn.request("HEAD", "/index.html")
res = conn.getresponse()
responses[self.hostname] = res.status
if __name__ == "__main__":
for h in hosts:
StatusChecker(h).start()
time.sleep(10)
print responses
這將使類似:
$ python test.py
{'nos.nl': 200, 'www.yahoo.com': 301, 'www.google.com': 200}
嗯,這看起來不存在可疑的一切.... – 2012-07-05 19:09:20
@RogueCoder當然不是。我相信它有一個完全合法的用途。 – Lusitanian 2012-07-05 19:11:08
這對很多語言的cURL來說都是微不足道的。你遇到什麼問題? – Brad 2012-07-05 19:13:35