我有超过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)的多线程,但是想知道以这种方式实现它是否比单纯创建多个webdrivers有任何优势,就像上面提到的代码一样。
答案 0 :(得分:1)
你真的需要使用Selenium才能做到这一点吗? 使用此框架检查Scrapy,您可以轻松发送大量请求并获取数据。 Selenium对于实现浏览器自动化非常有用。