python - Python/Selenium:“无法访问此站点”导致“未知错误:无法确定加载状态”
问题描述
我正在运行一个脚本,它可以很好地抓取我需要的一些数据。该脚本抓取给定网页上的一些现有 URL,并访问每个 URL 以获取最终 URL。当未找到最终 URL“无法访问此站点”时会出现问题。代码崩溃了,我在日志中得到了这个:
selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: chrome=84.0.4147.135)
(Driver info: chromedriver=2.43.600210 (68dcf5eebde37173d4027fa8635e332711d2874a),platform=Windows NT 6.1.7601 SP1 x86_64)
这是我用来抓取最终 URL 的代码:
#Open link (opens in new tab)
elem = driver.find_element_by_xpath('//*[@id="popup__teaser"]/div[6]/div/div/a')
elem.click()
time.sleep(2)
#wait for redirection to load - switch to the new tab - grab and print the new URL
driver.get(driver.current_url)
time.sleep(1)
driver.switch_to_window(driver.window_handles[1])
URL= driver.current_url
#Close active tab
driver.close()
#switch to main tab
driver.switch_to_window(driver.window_handles[0])
有人可以帮忙解决这个问题吗?它仅在找不到重定向 URL 时发生。谢谢
编辑:我试过添加chrome_options.add_argument('--disable-dev-shm-usage')
,但没有奏效。
EDIT2:这是导致崩溃的 URL
解决方案
尝试导入请求并检查站点的状态代码。对于一个处于活动状态的站点,它的状态代码通常应该是 200。如果它没有状态代码 200,那么很可能无法访问它
import requests
if requests.get(url).status_code!=200:
推荐阅读
- elasticsearch - 弹性搜索多字段通配符布尔查询
- excel - 在 excel 中 - 从另一个宏获取 gmail 电子邮件正文
- javascript - 邮政编码验证
- react-native - GET请求在React Native中使用apisauce下载PDF
- android - Sum()函数在Room数据库android中不起作用
- python - numpy.absolute() 带有数组类型的输入数据
- redux - redux : 通过动态键选择/获取嵌套状态
- c++ - 更改引用后增加值不会增加两个值
- azure - 无法卸载 Azure CLI 2.0.75
- python - Flask-Session cookie 适用于 IP 地址和域的其他浏览器,但对于 chrome,它仅适用于 IP 地址