selenium循环爬虫问题解决

一、打开多个浏览器问题
循环爬去多个网站时,直接用一下代码:

 driver = webdriver.Firefox()
 driver.get(url)

这样用循环的方式爬取时,每调用一次driver时,会打开一个浏览器窗口,多次打开会很难受,而且系统也受不了,所以可以用headless操作,不用打开窗口直接获取源码。

option = webdriver.FirefoxOptions()
option.set_headless()
driver = webdriver.Firefox(firefox_options=option)

解决弹窗问题。
二、报错问题
多次循环调用webdriver.Firefox()时,会报错 selenium.common.exceptions.WebDriverException: Message: connection refused,我认为主要因为后台打开太多浏览器,而未关闭,导致报错,因此我在用selenium模拟浏览器获取page_source后,调用quit()函数关闭浏览器,后不会再报错。代码如下:

driver.get(url)
content = driver.page_source
firefox_driver.quit()

三、打开webdriver时报错
很多时候由于没有安装geckodriver,会报错Message: ‘geckodriver’ executable needs to be in PATH,Ubuntu报错时下载geckodriverckod,解压后放到/usr/local/bin/ 路径下,即可解决错误。

发布了9 篇原创文章 · 获赞 2 · 访问量 3083

猜你喜欢

转载自blog.csdn.net/xiaokan_001/article/details/88427414