0
大多數時候,我必須刮掉的網頁數量低於100,因此使用for循環我會在合理的時間內解析它們。但現在我必須解析超過1000個網頁。如何使用線程解析Python中的多個網頁?
尋找一種方法來做到這一點,我發現線程可能會有所幫助。我看過並閱讀了一些教程,我相信我已經理解了一般邏輯。
我知道如果我有100個網頁,我可以創建100個線程。不建議這樣做,特別是對於大量的網頁。我沒有真正想到的是,例如,我如何在每個線程上創建200個網頁的5個線程。
下面是一個使用線程和硒一個簡單的代碼示例:
import threading
from selenium import webdriver
def parse_page(page_url):
driver = webdriver.PhantomJS()
driver.get(url)
text = driver.page_source
..........
return parsed_items
def threader():
worker = q.get()
parse_page(page_url)
q.task_one()
urls = [.......]
q = Queue()
for x in range(len(urls)):
t = threading.Thread(target=threader)
t.daemon = True
t.start()
for worker in range(20):
q.put(worker)
q.join()
,我不是明確的另一件事,它是上面的代碼示例所示是我在線程中使用的參數。
要將參數添加到線程,如果您的目標函數有兩個參數:'t = threading.Thread(target = threader,args =(arg1,arg2))' –