美文网首页
python爬虫非阻塞模式,解决selenium加载url超时问

python爬虫非阻塞模式,解决selenium加载url超时问

作者: 沉思的雨季 | 来源:发表于2022-03-24 16:11 被阅读0次

问题现象:

在python开发爬虫程序,通过selenium打开web页面,遇到某个url加载超时,即便捕获了异常也无法继续get(url) 打开新页面,出现程序执行中断。

解决办法:

设置desired_capabilities["pageLoadStrategy"]的值为none,以非阻塞的方式运行,在页面加载过程中也可以执行命令。
代码如下:

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

#初始化浏览器对象
chrome_options = Options()
#设置无窗口模式
chrome_options.add_argument('--headless')
#解决反爬识别selenium
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
#设置user-agent,来模拟客户端,如iPhone Safari浏览器
options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"')
#设置默认编码为 utf-8,也就是中文
chrome_options..add_argument('lang=zh_CN.UTF-8')
#禁止图片加载
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
#设置页面加载策略,none表示非阻塞模式。
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none"
#初始化webdriver对象,设置参数
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='chromedriver.exe', desired_capabilities=desired_capabilities)

Selenium常见操作参考:python Selenium库的使用

相关文章

网友评论

      本文标题:python爬虫非阻塞模式,解决selenium加载url超时问

      本文链接:https://www.haomeiwen.com/subject/buakjrtx.html