我有超过 19,000 个链接,我需要访问这些链接来抓取数据。每个都需要大约 5 秒才能完全加载,这意味着我需要略多于 26 小时的时间来抓取单个网络驱动程序上的所有内容。
对我来说,解决方案似乎只是在一个单独的 python 笔记本中启动另一个 webdriver(或其他几个),该笔记本并行地遍历链接的另一部分。即:
在第一个 iPython 笔记本中:
from selenium import webdriver
driver1 = webdriver.Firefox()
... scraping code looping over links 0-9500 using driver1...
在第二个 iPython 笔记本中:
from selenium import webdriver
driver2 = webdriver.Firefox()
... scraping code looping over links 9501-19000 using driver2...
我对抓取还很陌生,所以这个问题可能完全是初级/荒谬的(?)。但是,我尝试过搜索此内容,但没有看到有关该主题的任何内容,因此我将不胜感激有关此事的任何建议。或者有任何关于更好/更正确的方法来实现这一点的建议。
我听说过使用线程模块( http://www.tutorialspoint.com/python/python_multithreading.htm )的多线程,但想知道以这种方式实现它是否比简单地创建多个网络驱动程序(如上述代码中那样)有任何优势。
最佳答案
你真的需要使用 Selenium 才能做到这一点吗? 检查Scrapy使用这个框架,您可以轻松发送大量请求并抓取数据。 Selenium 对于实现浏览器自动化很有用。
关于python - 是否建议通过启动多个网络驱动程序来使用 Selenium 加速抓取速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34315288/