簡體   English   中英

python請求.status_code沒有返回正確的值

[英]python requests .status_code not returning correct value

查看此處的文檔: http//docs.python-requests.org/en/latest/user/quickstart/

這應該打印200 ,它確實。

import requests
r = requests.get('http://souke.xdf.cn/Category/1-40-0-0.html?v=5&page=1&pagesize=50')
print r.status_code

這應該打印404但它打印200

import requests
r = requests.get('http://souke.xdf.cn/CategoryXXX/1-40-0-0.html?v=5&page=1&pagesize=50')
print r.status_code

這是為什么?

有沒有另一種方法來識別404錯誤發生了?

問題不在於requests而在於您正在訪問的站點。 它回歸200

您可以使用Chrome開發人員工具查看標題來確認這一點:

Request URL:http://souke.xdf.cn/CategoryXXX/1-40-0-0.html?v=5&page=1&pagesize=50
Request Method:GET
Status Code:200 OK

您正在尋找的頁面位於服務器上,因此服務器響應200 OK。 不過,您可以使用Requests的raise_for_status(),在發現服務器錯誤時引發異常,例如404,401等。

import requests

>>>>r = requests.get('http://something.com/404/')
>>>>print r.status_code
404
>>>>r.raise_for_status()
Traceback (most recent call last):
File "requests/models.py", line 832, in raise_for_status
raise http_error
requests.exceptions.HTTPError: 404 Client Error
.raise_for_status()

如果不是200,這將引發錯誤

這比使用更好

.status_code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM