php多线程抓取多个网页(使用线程和Selenium的简单代码示例:使用参数)
优采云 发布时间: 2022-03-14 07:02php多线程抓取多个网页(使用线程和Selenium的简单代码示例:使用参数)
大多数时候,我必须抓取的页面数量低于 100,因此使用 for 循环,我可以在合理的时间内解析它们。但现在我有 1000 多个网页要分析。在
在寻找实现此目标的方法时,我发现了可能有用的线程。我看过一些教程,我相信我理解一般逻辑。在
我知道如果我有 100 个网页,我可以创建 100 个线程。不建议这样做,尤其是对于大量网页。例如,我还没有真正弄清楚如何创建 5 个线程,每个线程上有 200 个网页。在
这是一个使用线程和 Selenium 的简单代码示例:
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()
我不清楚的另一件事是参数如何在线程中使用。在