我想獲得隨機樣本的互聯網網頁,我不想因各種原因報廢谷歌搜索結果。以下是我已經嘗試過的方法;如何從互聯網上隨機抽取樣本?
import socket
from random import randint
def doesitserveawebpage(ip):
ip=str(ip)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, 80))
s.shutdown(2)
return True
except:
return False
def givemerandomwebsite():
adrformat = "%d.%d.%d.%d"
while True:
adr = adrformat % tuple(randint(0,255) for _ in range(4))
try:
print "Tring %s" % adr
name = socket.gethostbyaddr(adr)
if (doesitserveawebpage(adr)):
return name
else:
continue
except socket.herror:
continue
嗯,它不工作。首先,它工作得太慢了。其次,它給了我不會提供網頁的addreses。無論如何,我可以使這個代碼更好,或者你會建議另一種方法來解決這個問題?
現代Web服務器(HTTP 1.1)*需要一個主機名,因爲它們將爲同一IP地址上的許多不同的站點提供服務。你的方法是行不通的。 –
你能詳細說明你想要的樣品的原因嗎?它可能有助於縮小問題範圍(例如,比網絡的初始人口更窄)。 –
此外,通過在全球範圍內隨機分配IP地址,您更有可能會遇到不需要託管網站的機器。 –