使用selenium和chromedriver组合爬虫时,如果爬取的页面数量巨多,会出现占用内存逐渐增大知道程序崩溃的情况...

当使用selenium和chromedriver大量爬取网页时,内存占用会逐渐增加导致程序崩溃。为解决此问题,可以采取关闭当前窗口并新建窗口请求页面的方法,避免内存持续增长。
摘要由CSDN通过智能技术生成

使用selenium和chromedriver组合爬虫时,如果爬取的页面数量巨多,会出现占用内存逐渐增大知道程序崩溃的情况。

解决方案:关闭当前的窗口(注意,phantomjs中的窗口其实就是chrome里的标签页,phantomjs是无界面浏览器,不需要像chrome那样可以把几个标签页放在不同的“窗口”显示),打开一个新的窗口请求页面

代码如下

from bs4 import BeautifulSoup
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless') #关闭图形界面,提高效率
#打开一个浏览器
browser = webdriver.Chrome(executable_path=r'C:\ProgramData\Anaconda3\chromedriver.exe',chrome_options=chrome_options)

for i in range(1000): #为了查看内存而设
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 SeleniumChromeDriver 进行爬取,有遇到浏览器错误,例如 ChromeDriver 版本与 Chrome 版本不匹配、ChromeDriver 可执行文件路径错误等。以下是一些常见的解决方法: 1. 确认 ChromeDriver 版本与 Chrome 版本匹配。可以通过在 Chrome 地址栏输入 `chrome://version/` 查看 Chrome 版本,然后到 ChromeDriver 官网下载相应版本的 ChromeDriver。 2. 指定 ChromeDriver 可执行文件路径。可以通过实例化 ChromeDriver 传递 `webdriver.chrome.driver` 参数来指定 ChromeDriver 的可执行文件路径。例如: ```python from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # 指定 ChromeDriver 可执行文件路径 driver_path = 'path/to/chromedriver' driver = webdriver.Chrome(executable_path=driver_path, chrome_options=chrome_options) # 访问页面 driver.get('https://www.xiaohongshu.com/explore/645874a800000000120338d6') ``` 3. 禁用 Chrome 浏览器的一些安全特性。可以通过在实例化 ChromeDriver 传递 `--disable-web-security` 和 `--allow-running-insecure-content` 参数来禁用 Chrome 浏览器的一些安全特性。例如: ```python from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--disable-web-security') chrome_options.add_argument('--allow-running-insecure-content') driver = webdriver.Chrome(chrome_options=chrome_options) # 访问页面 driver.get('https://www.xiaohongshu.com/explore/645874a800000000120338d6') ``` 这些方法可能绕过浏览器错误,但同降低安全性,请谨慎使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值