当前位置: 首页 > 知识库问答 >
问题:

如何在python中获取selenium chrome web驱动程序中的状态码

李奕
2023-03-14

我在selenium中寻找status_code,但找不到任何适合我需要的代码。我的另一个问题是,当我进入一个不存在的域时,让我们说https://gghgjeggeg.com。硒不会增加任何费用。它的页面源码如下:-

<html><head></head><body></body></html>

如何获取状态代码(有效域的状态代码,例如:https://twiitter.com/404errpage),以及为Selenium中不存在的域引发错误,或者是否有其他类似Selenium的库?

共有1个答案

穆华彩
2023-03-14

Selenium不是用来直接检查HTTP状态代码的。Selenium被用来像用户一样与网站交互。典型的用户不会打开开发人员工具并观察HTTP状态代码,而是查看页面内容。

我甚至看到页面以HTTP 200 OK响应,向用户传递“资源未找到”消息。

即使是Selenium开发人员也解决了这个问题:

来源:selenium.dev/最差做法/HTTP响应代码

如果您坚持使用Selenium,最好找到第一个h1元素,并查找典型的Chrome404签名:

h1 = driver.find_element_by_css_selector('h1')
if h1.text == u"This site can’t be reached":
    print("Not found")

不过,如果你想抓取网站,你甚至可以使用urllib,就像Tek Nath在评论中建议的那样:

import urllib.request
import urllib.request
import urllib.error

try:
    with urllib.request.urlopen('http://www.safasdfsadfsadfdsf.org/') as f:
        print(f.read())
        print(f.status)
        print(f.getheader("content-length"))
except urllib.error.URLError as e:
    print(e.reason)

由于域不存在,代码将运行到异常处理程序分支中。

有关详细信息和更多示例,请参见Python文档:

  • urllibAPI
  • httpresponse对象接口
  • xml.dom(Python文档)
  • “Python:是否有一个内置包将html解析为DOM”(Stackoverflow)
 类似资料:
  • 问题内容: 我正在尝试使用Selenium Web驱动程序获取文本,这是我的代码。请注意,我不想使用Xpath,因为在我的情况下,每次重新启动网页时id都会更改,请提供帮助。 我的代码: HTML: 问题答案: 你只想。 然后,您可以在得到验证 后对其 进行验证,不要尝试传递您 期望的 内容。

  • 有一个问题,它不隐藏浏览器,我能做什么?

  • 问题内容: 我用来单击所需的网页,然后使用解析网页。 有人展示了如何在中获取元素的内部HTML。有没有办法获取整个页面的HTML?谢谢 中的示例代码 (基于上面的帖子,语言似乎没有太大关系): 问题答案: 要获取整个页面的HTML: 要获取外部HTML(包括标记): 要获取内部HTML(不包括标签):

  • 我正在react项目中使用redux工具包。在createSlice的reducer中,我希望在缩减最终状态之前,使用状态中现有的实体数组并附加新数组。但我无法获取状态值。 这是减速器代码 当我调试状态时。entites变量,如下所示 是否有方法访问reducer/extraReducer中的当前状态值,以便根据需要重新创建状态? 因为我假设直接在减速器之外使用状态值是一种不好的做法。如果我错了,

  • 在Axios文档中: 我们知道我们可以在

  • 我使用的是Spark1.4.0-RC2,这样我就可以将Python3与spark一起使用了。如果我将添加到我的.bashrc文件中,我就可以与Python3交互地运行spark。但是,如果我想在本地模式下运行一个独立程序,我会得到一个错误: 如何为驱动程序指定python的版本?设置不工作。