【发布时间】:2021-03-10 09:40:24
【问题描述】:
我正在使用selenium 和 Python 做一个大项目。我必须一个一个地浏览 320.000 个网页 (320K) 并抓取详细信息,然后睡一秒钟继续前进。
如下:
links = ["https://www.thissite.com/page=1","https://www.thissite.com/page=2", "https://www.thissite.com/page=3"]
for link in links:
browser.get(link )
scrapedinfo = browser.find_elements_by_xpath("*//div/productprice").text
open("file.csv","a+").write(scrapedinfo)
time.sleep(1)
最大的问题:太慢了!
有了这个脚本我需要几天或者可能几周。
- 有没有办法提高速度?例如,通过访问多个 同时链接并一次抓取所有链接?
我花了几个小时在 google 和 Stackoverflow 上寻找答案,但只找到了 multiprocessing。
但是,我无法在我的脚本中应用它。
【问题讨论】:
-
使用 requests + lxml/BeautifulSoup 代替 Selenium 会减少抓取时间
-
@JaSON 该网站使用 javascript,因此要求工作
-
您可以删除睡眠时间并将其替换为implicit wait? this 帖子中给出了另一个选项,使用无头铬或多处理。
标签: python python-3.x selenium selenium-webdriver selenium-chromedriver