Đây là một giải pháp
Python request.py21 hoạt động như Urllib2. Bạn chỉ có thể cung cấp cho nó một URL và nó chỉ hoạt động. Không cần phải gây rối về việc chia URL của bạn vào tên máy chủ và đường dẫn. Chức năng này đã làm điều đó.
import httplib
import socket
def get_link_status[url]:
"""
Gets the HTTP status of the url or returns an error associated with it. Always returns a string.
"""
https=False
url=re.sub[r'[.*]#.*$',r'\1',url]
url=url.split['/',3]
if len[url] > 3:
path='/'+url[3]
else:
path='/'
if url[0] == '':
port=80
elif url[0] == '':
port=443
https=True
if ':' in url[2]:
host=url[2].split[':'][0]
port=url[2].split[':'][1]
else:
host=url[2]
try:
headers={'User-Agent':'Mozilla/5.0 [X11; Ubuntu; Linux x86_64; rv:26.0] Gecko/20100101 Firefox/26.0',
'Host':host
}
if
conn=httplib.HTTPSConnection[host=host,port=port,timeout=10]
else:
conn=httplib.HTTPConnection[host=host,port=port,timeout=10]
conn.request[method="HEAD",url=path,headers=headers]
response=str[conn.getresponse[].status]
conn.close[]
except socket.gaierror,e:
response="Socket Error [%d]: %s" % [e[0],e[1]]
except StandardError,e:
if hasattr[e,'getcode'] and len[e.getcode[]] > 0:
response=str[e.getcode[]]
if hasattr[e, 'message'] and len[e.message] > 0:
response=str[e.message]
elif hasattr[e, 'msg'] and len[e.msg] > 0:
response=str[e.msg]
elif type[''] == type[e]:
response=e
else:
response="Exception occurred without a good error message. Manually check the URL to see the status. If it is believed this URL is 100% good then file a issue for a potential bug."
return response
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc returns a number that indicates the status [200 is OK, 404 is Not Found]. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves around how to check the response.status_code out of a response object. To know more about Status codes for HTTP, visit – HTTP status codes | Successful Responses and HTTP status codes | Informational Responses.
Bàn luận
Đọc returns a number that indicates the status [200 is OK, 404 is Not Found]. Python requests are generally used to fetch the content from a particular resource URI. Whenever we make a request to a specified URI through Python, it returns a response object. Now, this response object would be used to access certain features such as content, headers, etc. This article revolves around how to check the response.status_code out of a response object. To know more about Status codes for HTTP, visit – HTTP status codes | Successful Responses and HTTP status codes | Informational Responses.
Phản hồi.status_code trả về một số chỉ ra trạng thái [200 là OK, không tìm thấy 404]. Các yêu cầu Python thường được sử dụng để tìm nạp nội dung từ một URI tài nguyên cụ thể. Bất cứ khi nào chúng tôi đưa ra yêu cầu cho một URI được chỉ định thông qua Python, nó sẽ trả về một đối tượng phản hồi. Bây giờ, đối tượng phản hồi này sẽ được sử dụng để truy cập một số tính năng nhất định như nội dung, tiêu đề, v.v ... Bài viết này xoay quanh cách kiểm tra phản hồi.status_code ra khỏi đối tượng phản hồi. Để biết thêm về mã trạng thái cho HTTP, hãy truy cập - mã trạng thái HTTP | Phản hồi thành công và mã trạng thái HTTP | Phản hồi thông tin.- Làm thế nào để sử dụng phản hồi.status_code bằng cách sử dụng các yêu cầu Python?
- Để minh họa việc sử dụng phản hồi.status_code, hãy để ping ping api.github.com. Để chạy tập lệnh này, bạn cần cài đặt Python và yêu cầu trên PC.
Cách cài đặt các yêu cầu trong Python - cho Windows, Linux, Mac
Python request.pyMã ví dụ -
Thực hiện ví dụ -and 200 in the output which refer to HttpResponse and Status code respectively.
Lưu tệp trên dưới dạng Python request.py
22 và chạy bằng cách sử dụngand 200 in the output which refer to HttpResponse and Status code respectively.
Đầu ra -
requests.status_code
Kiểm tra và 200 trong đầu ra có liên quan đến mã trạng thái và mã trạng thái tương ứng.
Nếu status_code không nằm trong phạm vi 200-29. Bạn có thể cần kiểm tra phương thức bắt đầu được sử dụng để thực hiện yêu cầu + URL bạn đang yêu cầu tài nguyên. Lib/http/__init__.py
Mã nguồn: lib/http/__ init__.py Lib/http/__init__.py
Python request.py
23 là một gói thu thập một số mô -đun để làm việc với giao thức chuyển siêu văn bản:Python request.py
24 là máy khách giao thức HTTP cấp thấp; Đối với việc sử dụng URL cấp caoPython request.py
25Python request.py
0 chứa các lớp máy chủ HTTP cơ bản dựa trênPython request.py
1Python request.py
2 có các tiện ích để thực hiện quản lý nhà nước với cookie
Python request.py3 cung cấp sự kiên trì của bánh quy Mô -đun
Python request.py23 cũng xác định các ENUM sau giúp bạn làm việc với mã liên quan đến http.HTTPStatus¶
classhttp.httpstatus¶http.HTTPStatus¶
Mới trong phiên bản 3.5.
Một lớp con củaUsage:
>>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]
Python request.py
5 xác định một tập hợp mã trạng thái HTTP, cụm từ lý do và mô tả dài được viết bằng tiếng Anh.
Mã trạng thái HTTP
Mã trạng thái được hỗ trợ, được đăng ký IANA có sẵn trongThông tin chi tiết | Python request.py7 | Python request.py8 RFC 7231, Section 6.2.1 |
HTTP/1.1 RFC 7231, Phần 4.3.1RFC 7231, Section 6.2.1 | Python request.py9 | requests.status_code0 RFC 7231, Section 6.2.2 |
HTTP/1.1 RFC 7231, Phần 4.3.2RFC 7231, Section 6.2.2 | requests.status_code1 | requests.status_code2 RFC 2518, Section 10.1 |
HTTP/1.1 RFC 7231, Phần 4.3.3RFC 2518, Section 10.1 | requests.status_code3 | requests.status_code4 RFC 8297 |
HTTP/1.1 RFC 7231, Phần 4.3.4RFC 8297 | requests.status_code5 | requests.status_code6 RFC 7231, Section 6.3.1 |
HTTP/1.1 RFC 7231, Phần 4.3.5RFC 7231, Section 6.3.1 | requests.status_code7 | requests.status_code8 RFC 7231, Section 6.3.2 |
HTTP/1.1 RFC 7231, Phần 4.3.6RFC 7231, Section 6.3.2 | requests.status_code9 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]0 RFC 7231, Section 6.3.3 |
HTTP/1.1 RFC 7231, Phần 4.3.7RFC 7231, Section 6.3.3 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]1 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]2 RFC 7231, Section 6.3.4 |
HTTP/1.1 RFC 7231, Phần 4.3.8RFC 7231, Section 6.3.4 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]3 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]4 RFC 7231, Section 6.3.5 |
HTTP/1.1 RFC 5789RFC 7231, Section 6.3.5 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]5 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]6 RFC 7231, Section 6.3.6 |
Mã nguồn: lib/http/__ init__.pyRFC 7231, Section 6.3.6 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]7 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]8 RFC 7233, Section 4.1 |
Python request.py23 là một gói thu thập một số mô -đun để làm việc với giao thức chuyển siêu văn bản:RFC 7233, Section 4.1 | >>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list[HTTPStatus] [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]9 | Python request.py30 RFC 4918, Section 11.1 |
Python request.py24 là máy khách giao thức HTTP cấp thấp; Đối với việc sử dụng URL cấp cao Python request.py25RFC 4918, Section 11.1 | Python request.py31 | Python request.py32 RFC 5842, Section 7.1 [Experimental] |
Python request.py0 chứa các lớp máy chủ HTTP cơ bản dựa trên Python request.py1RFC 5842, Section 7.1 [Experimental] | Python request.py33 | Python request.py34 RFC 3229, Section 10.4.1 |
Python request.py2 có các tiện ích để thực hiện quản lý nhà nước với cookieRFC 3229, Section 10.4.1 | Python request.py35 | Python request.py36 RFC 7231, Section 6.4.1 |
Python request.py37 | Python request.py38 | Mô -đun Python request.py23 cũng xác định các ENUM sau giúp bạn làm việc với mã liên quan đến RFC 7231, Section 6.4.2RFC 7231, Section 6.4.2 |
Python request.py39 | Python request.py210 | classhttp.httpstatus¶RFC 7231, Section 6.4.3RFC 7231, Section 6.4.3 |
Python request.py211 | Python request.py212 | HTTP/1.1 RFC 7231, Mục 6.4.4RFC 7231, Section 6.4.4RFC 7231, Section 6.4.4 |
Python request.py213 | Python request.py214 | HTTP/1.1 RFC 7232, Phần 4.1RFC 7232, Section 4.1RFC 7232, Section 4.1 |
Python request.py215 | Python request.py216 | HTTP/1.1 RFC 7231, Mục 6.4.5RFC 7231, Section 6.4.5RFC 7231, Section 6.4.5 |
Python request.py217 | Python request.py218 | HTTP/1.1 RFC 7231, Mục 6.4.7RFC 7231, Section 6.4.7RFC 7231, Section 6.4.7 |
Python request.py219 | Python request.py220 | Chuyển hướng vĩnh viễn RFC 7238, Phần 3 [thử nghiệm]RFC 7238, Section 3 [Experimental]RFC 7238, Section 3 [Experimental] |
Python request.py221 | Python request.py222 | HTTP/1.1 RFC 7231, Mục 6.5.1RFC 7231, Section 6.5.1RFC 7231, Section 6.5.1 |
Python request.py223 | Python request.py224 | HTTP/1.1 Xác thực RFC 7235, Phần 3.1RFC 7235, Section 3.1RFC 7235, Section 3.1 |
Python request.py225 | Python request.py226 | HTTP/1.1 RFC 7231, Mục 6.5.2RFC 7231, Section 6.5.2RFC 7231, Section 6.5.2 |
Python request.py227 | Python request.py228 | HTTP/1.1 RFC 7231, Mục 6.5.3RFC 7231, Section 6.5.3RFC 7231, Section 6.5.3 |
Python request.py229 | Python request.py230 | HTTP/1.1 RFC 7231, Mục 6.5.4RFC 7231, Section 6.5.4RFC 7231, Section 6.5.4 |
Python request.py231 | Python request.py232 | HTTP/1.1 RFC 7231, Mục 6.5.5RFC 7231, Section 6.5.5RFC 7231, Section 6.5.5 |
Python request.py233 | Python request.py234 | HTTP/1.1 RFC 7231, Mục 6.5.6RFC 7231, Section 6.5.6RFC 7231, Section 6.5.6 |
Python request.py235 | Python request.py236 | HTTP/1.1 Xác thực RFC 7235, Phần 3.2RFC 7235, Section 3.2RFC 7235, Section 3.2 |
Python request.py237 | Python request.py238 | HTTP/1.1 RFC 7231, Mục 6.5.7RFC 7231, Section 6.5.7RFC 7231, Section 6.5.7 |
Python request.py239 | Python request.py240 | HTTP/1.1 RFC 7231, Mục 6.5.8RFC 7231, Section 6.5.8RFC 7231, Section 6.5.8 |
Python request.py241 | Python request.py242 | HTTP/1.1 RFC 7231, Mục 6.5.9RFC 7231, Section 6.5.9RFC 7231, Section 6.5.9 |
Python request.py243 | Python request.py244 | HTTP/1.1 RFC 7231, Mục 6.5.10RFC 7231, Section 6.5.10RFC 7231, Section 6.5.10 |
Python request.py245 | Python request.py246 | HTTP/1.1 RFC 7232, Phần 4.2RFC 7232, Section 4.2RFC 7232, Section 4.2 |
Python request.py247 | Python request.py248 | HTTP/1.1 RFC 7231, Mục 6.5.11RFC 7231, Section 6.5.11RFC 7231, Section 6.5.11 |
Python request.py249 | Python request.py250 | HTTP/1.1 RFC 7231, Mục 6.5.12RFC 7231, Section 6.5.12RFC 7231, Section 6.5.12 |
Python request.py251 | Python request.py252 | HTTP/1.1 RFC 7231, Mục 6.5.13RFC 7231, Section 6.5.13RFC 7231, Section 6.5.13 |
Python request.py253 | Python request.py254 | HTTP/1.1 Range Yêu cầu RFC 7233, Phần 4.4RFC 7233, Section 4.4RFC 7233, Section 4.4 |
Python request.py255 | Python request.py256 | HTTP/1.1 RFC 7231, Mục 6.5.14RFC 7231, Section 6.5.14RFC 7231, Section 6.5.14 |
Python request.py257 | Python request.py258 | HTCPCP/1.0 RFC 2324, Phần 2.3.2RFC 2324, Section 2.3.2RFC 2324, Section 2.3.2 |
Python request.py259 | Python request.py00 | HTTP/2 RFC 7540, Phần 9.1.2RFC 7540, Section 9.1.2RFC 7540, Section 9.1.2 |
Python request.py01 | Python request.py02 | WebDAV RFC 4918, Phần 11.2RFC 4918, Section 11.2RFC 4918, Section 11.2 |
Python request.py03 | Python request.py04 | WebDAV RFC 4918, Phần 11.3RFC 4918, Section 11.3RFC 4918, Section 11.3 |
Python request.py05 | Python request.py06 | WebDAV RFC 4918, Phần 11.4RFC 4918, Section 11.4RFC 4918, Section 11.4 |
Python request.py07 | Python request.py08 | Sử dụng dữ liệu ban đầu trong HTTP RFC 8470RFC 8470RFC 8470 |
Python request.py09 | Python request.py10 | HTTP/1.1 RFC 7231, Mục 6.5.15RFC 7231, Section 6.5.15RFC 7231, Section 6.5.15 |
Python request.py11 | Python request.py12 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585RFC 6585 |
Python request.py13 | Python request.py14 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585RFC 6585 |
Python request.py13 | Python request.py14 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585RFC 6585 |
Python request.py13 | Python request.py14 | Python request.py15 RFC 7725 |
Python request.py16 | Python request.py17 | Python request.py18 RFC 7231, Section 6.6.1 |
Mã trạng thái HTTP để báo cáo những trở ngại pháp lý RFC 7725RFC 7725 | Python request.py19 | Python request.py20 RFC 7231, Section 6.6.2 |
HTTP/1.1 RFC 7231, Mục 6.6.1RFC 7231, Section 6.6.1 | Python request.py21 | Python request.py22 RFC 7231, Section 6.6.3 |
HTTP/1.1 RFC 7231, Mục 6.6.2RFC 7231, Section 6.6.2 | Python request.py23 | Python request.py24 RFC 7231, Section 6.6.4 |
HTTP/1.1 RFC 7231, Mục 6.6.3RFC 7231, Section 6.6.3 | Python request.py25 | Python request.py26 RFC 7231, Section 6.6.5 |
HTTP/1.1 RFC 7231, Mục 6.6.4RFC 7231, Section 6.6.4 | Python request.py27 | Python request.py28 RFC 7231, Section 6.6.6 |
HTTP/1.1 RFC 7231, Mục 6.6.5RFC 7231, Section 6.6.5 | Python request.py29 | Python request.py30 RFC 2295, Section 8.1 [Experimental] |
HTTP/1.1 RFC 7231, Mục 6.6.6RFC 7231, Section 6.6.6 | Python request.py31 | Python request.py32 RFC 4918, Section 11.5 |
Đàm phán nội dung minh bạch trong HTTP RFC 2295, Mục 8.1 [thử nghiệm]RFC 2295, Section 8.1 [Experimental] | Python request.py33 | Python request.py34 RFC 5842, Section 7.2 [Experimental] |
WebDAV RFC 4918, Phần 11.5RFC 4918, Section 11.5 | Python request.py35 | Python request.py36 RFC 2774, Section 7 [Experimental] |
Tiện ích mở rộng liên kết WebDAV RFC 5842, Phần 7.2 [thử nghiệm]RFC 5842, Section 7.2 [Experimental] | Python request.py37 | Python request.py38 RFC 6585, Section 6 |
Khung mở rộng HTTP RFC 2774, Phần 7 [thử nghiệm]RFC 2774, Section 7 [Experimental]
Python request.py39
Python request.py
40
Python request.py24 dưới dạng hằng số. Tên enum bằng với tên hằng số [nghĩa là
Python request.py
42 cũng có sẵn là Python request.py
43].
Python request.py44.Added
Python request.py
44 status code.
Python request.py45.Added classhttp.httpmethod¶http.HTTPMethod¶
Python request.py
45 status code.
Mới trong phiên bản 3.9: Đã thêm
Python request.py46,
Python request.py47 và
Python request.py48 Mã trạng thái.Added
Usage:
Python request.py3
Python request.py
46, Python request.py
47 and Python request.py
48 status codes. classhttp.httpmethod¶http.HTTPMethod¶
Mới trong phiên bản 3.11.
Python request.py50 là:
Python request.py51 | Python request.py51 | HTTP/1.1 RFC 7231, Phần 4.3.1RFC 7231, Section 4.3.1RFC 7231, Section 4.3.1 |
Python request.py53 | Python request.py53 | HTTP/1.1 RFC 7231, Phần 4.3.2RFC 7231, Section 4.3.2RFC 7231, Section 4.3.2 |
Python request.py55 | Python request.py55 | HTTP/1.1 RFC 7231, Phần 4.3.3RFC 7231, Section 4.3.3RFC 7231, Section 4.3.3 |
Python request.py57 | Python request.py57 | HTTP/1.1 RFC 7231, Phần 4.3.4RFC 7231, Section 4.3.4RFC 7231, Section 4.3.4 |
Python request.py59 | Python request.py59 | HTTP/1.1 RFC 7231, Phần 4.3.5RFC 7231, Section 4.3.5RFC 7231, Section 4.3.5 |
Python request.py61 | Python request.py61 | HTTP/1.1 RFC 7231, Phần 4.3.6RFC 7231, Section 4.3.6RFC 7231, Section 4.3.6 |
Python request.py63 | Python request.py63 | HTTP/1.1 RFC 7231, Phần 4.3.7RFC 7231, Section 4.3.7RFC 7231, Section 4.3.7 |
Python request.py65 | Python request.py65 | HTTP/1.1 RFC 7231, Phần 4.3.8RFC 7231, Section 4.3.8RFC 7231, Section 4.3.8 |
Python request.py67 | Python request.py67 | HTTP/1.1 RFC 5789RFC 5789RFC 5789 |