我想從下載幾個HTML頁面http://abc.com/view_page.aspx?ID=該ID來自不同數字的數組。智能屏幕抓取使用不同的代理和用戶代理隨機?
我會有興趣訪問此URL的多個實例,並使用不同的代理IP /端口將文件保存爲[ID] .HTML。
我想使用不同的用戶代理,並且我想在每次下載之前隨機化等待時間。
這樣做的最好方法是什麼? urllib2的? pycURL?捲曲?你喜歡做什麼?
請指教。多謝你們!
我想從下載幾個HTML頁面http://abc.com/view_page.aspx?ID=該ID來自不同數字的數組。智能屏幕抓取使用不同的代理和用戶代理隨機?
我會有興趣訪問此URL的多個實例,並使用不同的代理IP /端口將文件保存爲[ID] .HTML。
我想使用不同的用戶代理,並且我想在每次下載之前隨機化等待時間。
這樣做的最好方法是什麼? urllib2的? pycURL?捲曲?你喜歡做什麼?
請指教。多謝你們!
使用類似:
import urllib2
import time
import random
MAX_WAIT = 5
ids = ...
agents = ...
proxies = ...
for id in ids:
url = 'http://abc.com/view_page.aspx?ID=%d' % id
opener = urllib2.build_opener(urllib2.ProxyHandler({'http' : proxies[0]}))
html = opener.open(urllib2.Request(url, None, {'User-agent': agents[0]})).read()
open('%d.html' % id, 'w').write(html)
agents.append(agents.pop()) # cycle
proxies.append(proxies.pop())
time.sleep(MAX_WAIT*random.random())
使用unix工具wget
。它可以選擇指定自定義用戶代理和頁面每次檢索之間的延遲。
欲瞭解更多信息,你可以看到wget(1) man page。
這是一個好開始,謝謝!可以使用--random-wait。儘管如此,不太確定代理執行情況。有任何想法嗎? – ThinkCode 2010-05-10 15:27:16
我只使用'wget'進行基本的報廢,所以很抱歉,我無法給你更多關於代理的信息。 – pajton 2010-05-10 15:31:19
在wget中使用代理服務器: setenv http_proxy = http://proxy.example.com:8080; wget --proxy-user = foo --proxy-password = bar --user-agent =「Frobzilla/1.1」[url] – wump 2010-05-10 16:40:41
如果你不希望使用開放代理,結賬ProxyMesh,這確實IP旋轉/隨機爲您服務。
你爲什麼要隨機化用戶代理? – 2010-05-10 15:11:36
我不想透露我是下載頁面的人。爲了加強它,如果我們隨機使用不同的瀏覽器,這將鞏固我的匿名性,你說什麼? – ThinkCode 2010-05-10 15:25:55