我正在使用请求库并通过以下代码访问网站以从中收集数据:
r = requests.get(url)
我想为输入不正确的URL并返回404错误时添加错误测试。如果我故意输入无效的URL,请执行以下操作:
print r
我得到这个:
<Response [404]>
编辑:
我想知道如何测试。对象类型仍然相同。当我执行r.content
或时r.text
,我只是获得了自定义404页面的HTML。
看一下r.status_code
属性:
if r.status_code == 404:
# A 404 was issued.
演示:
>>> import requests
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.status_code
404
如果要requests
引发错误代码(4xx或5xx)的异常,请致电r.raise_for_status()
:
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.raise_for_status()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "requests/models.py", line 664, in raise_for_status
raise http_error
requests.exceptions.HTTPError: 404 Client Error: NOT FOUND
>>> r = requests.get('http://httpbin.org/status/200')
>>> r.raise_for_status()
>>> # no exception raised.
您还可以在布尔上下文中测试响应对象。如果状态代码不是错误代码(4xx或5xx),则将其视为“ true”:
if r:
# successful response
如果要更明确,请使用if r.ok:
。
本文向大家介绍GC中如何判断对象是否需要被回收?相关面试题,主要包含被问及GC中如何判断对象是否需要被回收?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA虚拟机 即使在可达性分析算法中不可达的对象,也并非是“非回收不可”的,这时候它们暂时处于“等待”阶段,要真正宣告一个对象回收,至少要经历两次标记过程:如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一
本文向大家介绍请问如何判断一个链表是否有环?相关面试题,主要包含被问及请问如何判断一个链表是否有环?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 方法1:用一个指针数组A,存储已访问过的节点。用一个指针p,每次在链表上移动一步,然后与指针数组A比较,若数组中没有指针与p相同,说明第一次访问p,将p放入数组中;若有指针与p相同,则存在环路,且第一次相同的节点就是环的入口点。 链表长度为n,
本文向大家介绍请问如何判断两个链表是否相交?相关面试题,主要包含被问及请问如何判断两个链表是否相交?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 从头遍历两个链表。创建两个栈,第一个栈存储第一个链表的节点,第二个栈存储第二个链表的节点。每遍历到一个节点时,就将该节点入栈。两个链表都入栈结束后。则通过top判断栈顶的节点是否相等即可判断两个单链表是否相交。因为我们知道,若两个链表相交,则从
问题内容: 我有这段代码,用于检查从我的应用程序中许多地方调用的Activity的Intent中是否有多余的值: 如果未设置isNewItem,我的代码会崩溃吗?在我调用它之前,有什么方法可以告诉它是否已设置吗? 处理此问题的正确方法是什么? 问题答案: 正如其他人所说,两者和都可能返回null。因此,您不想将调用链接在一起,否则您可能最终会调用,这将引发并导致应用程序崩溃。 这就是我要完成的方法
问题内容: 在Linux中使用屏幕时,如何确定我是否在屏幕中?如果可以,我可以退出屏幕,但是如果没有,那么我将关闭终端。 在执行操作时,我可以查看是否还连接了其他屏幕,但是如何知道我的当前终端是否是这些已连接屏幕之一? 问题答案: 检查。如果为空,则您位于“真实”终端上。如果包含任何内容,则为您所在屏幕的名称。 如果您不在屏幕上: 如果您在屏幕上:
系统的日志需要登录和登出闭环,即有一个用户登录日志,就需要有一条登出日志。 如果用户通过登出按钮手动登出,触发登出接口是没问题的。 但是大多数用户,包括我自己都是直接点击x,关闭系统。 于是我监听了beforeunload事件,想在这里发登出请求。 现在遇到两个问题,一是:刷新也会触发这个事件。 二是:触发这个事件后的弹窗 重新加载是刷新弹出的,离开时关闭弹出的,我只想在点击离开的时候触发登出,重
问题内容: 使用控制台,如何确定sidekiq是否已连接到Redis服务器?我希望能够做这样的事情: 问题答案: 您可以使用Sidekiq提供的Redis信息: 从Sidekiq的Sinatra状态应用程序中获取了它。
本文向大家介绍如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求,包括了如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求的使用技巧和注意事项,需要的朋友参考一下 网站经常会被各种爬虫光顾,有的是搜索引擎爬虫,有的不是,通常情况下这些爬虫都有UserAgent,而我们知道UserAgent是可以伪装的,UserAgent的本质是Http请求头中的一个选项设置,通过编程的方式可以给请求设置任意的User