python - 是否建议通过启动多个网络驱动程序来使用 Selenium 加速抓取速度?

标签 python selenium selenium-webdriver web-scraping

我有超过 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/

相关文章:

python - 用于定位文本区域元素的 Selenium 脚本不起作用

python - HTTP Negotiate windows vs. Unix 服务器实现使用 python-kerberos

python - 用漏勺捕捉空列表

python - 更改 Kivy 中的弹出文本

python-2.7 - 如何为centos 6.6设置chromedriver工作以在python中运行selenium测试用例

javascript - 如何在 Protractor 中单击同一个按钮超过 50 次?

python - 创建 PyPi 包 - 找不到满足 iso8601 要求的版本

c# - 将 chromedriver.exe 放在哪里以发布 Selenium WebDriver C#

python - Selenium headless browser webdriver [Errno 104] Connection reset by peer

java - 在 selenium webdriver 中从 IDE/控制台获取用户输入