2016-09-11 110 views
-2

問題:我試圖驗證驗證碼可以是0000-9999之間的任何內容,使用正常的請求模塊需要大約45分鐘時間才能完成所有驗證碼(0000-9999)。我如何多線程或加速?如果我可以從站點獲取HTTP狀態代碼來查看我是否成功地獲得了代碼或者它是不正確的(200 =正確,400 =不正確),那麼這將非常有幫助如果我能得到兩個示例(GET和POST)這將是太棒了!我如何加快速度? (urllib2,請求)

我一直在尋找了一段時間,大多數模塊我看的是過時的(我一直在使用grequests最近)

example url = https://www.google.com/ 
example params = captcha=0001 
example post data = {"captcha":0001} 

謝謝!

回答

5

你真的不應該試圖以編程方式繞過驗證碼!

您可以使用多個線程來發出同時請求,但在此時您所攻擊的服務很可能會禁止您的IP。至少,他們可能已經對服務進行了限制;有一個原因需要45分鐘。

Threading in Python通常通過使用包含長時間運行代碼的run()方法創建線程對象來實現。在你的情況下,你可能想要創建一個線程對象,它需要一個數字範圍來輪詢。一旦實例化,您可以調用.start()方法讓該線程開始工作。如果任何線程應該獲得成功消息,它會向主線程返回一條消息,自行停止,然後主線程可以告訴線程池中的所有其他線程停止。

+0

嗯,如果你不介意,我可以通過使用上面列出的兩個模塊來回調多線程的感覺,以作爲未來的參考嗎? – niro