这个问题属于超时(TimeOut)的问题,无法重新连接到网站继续爬取。
【办法1】我的解决方案是(因为我爬取的网页所含图片挺多的)——添加不加载图片的设置,这样可以有效地提高爬取网页的速度。
【步骤3】添加启动参数:
chrome_options.add_argument('blink-settings=imagesEnabled=false')
chrome_options是配置(使用当前)浏览器启动时一些项的参数,我们这里采用的都是:
- 添加启动参数 (add_argument)
它的作用之一就是我所需的:
- 禁止图片和视频的加载:提升网页加载速度
【步骤1】使用前要先导入chrome options的Options模块:
from selenium.webdriver.chrome.options import Options
【步骤2】然后新建一个启动参数对象:
chrome_options = Options()
【步骤4】在初始化Webdriver对象时将参数对象传入Chrome(实现以特定参数启动),则启动了一个设置了窗口大小的Chrome:
driver = webdriver.Chrome(chrome_options=chrome_options)
【办法2】还看到一种是临时解决的,“将该浏览器不提供可视化页面的设置去掉”,也可以参考,如下:
chrome_options.add_argument('--headless')
【注】chrome_options.add_argument的其他用法:
#修改User-Agent
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36')
# 设置默认编码为 utf-8
chrome_options.add_argument('lang=zh_CN.UTF-8')
# 代理ip设置
chrome_options.add_argument(代理ip)
为了反正多次爬取同一网站被封ip,准备一个ip池是必要的。
从该方法名称上看来,单数已经表示一次性只能添加一个参数。