Đây là một giải pháp httplib
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
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.
- Điều kiện tiên quyết -
Tải xuống và cài đặt phiên bản mới nhất của Python 3Cách cài đặt các yêu cầu trong Python - cho Windows, Linux, Mac
Mã ví dụ -
Python request.pyThực hiện ví dụ -
Lưu tệp trên dưới dạng request.py
và chạy bằng cách sử dụngand 200 in the output which refer to HttpResponse and Status code respectively.
Đầu ra -
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.
requests.status_code
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.
Mã nguồn: lib/http/__ init__.py Lib/http/__init__.py
http
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:
http.client
là máy khách giao thức HTTP cấp thấp; Đối với việc sử dụng URL cấp caourllib.request
Python 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 cookiePython request.py
3 cung cấp sự kiên trì của bánh quy
Mô -đun http
cũng xác định các ENUM sau giúp bạn làm việc với mã liên quan đến
Mới trong phiên bản 3.5.
Một lớp con của
Python request.py5 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.
Usage:
>>> 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, ...]
Mã trạng thái HTTP
Mã trạng thái được hỗ trợ, được đăng ký IANA có sẵn trong
Python request.py6 là:
Python request.py7 | Python request.py8 | HTTP/1.1 RFC 7231, Phần 4.3.1RFC 7231, Section 6.2.1 |
Python request.py9 | requests.status_code0 | HTTP/1.1 RFC 7231, Phần 4.3.2RFC 7231, Section 6.2.2 |
requests.status_code1 | requests.status_code2 | HTTP/1.1 RFC 7231, Phần 4.3.3RFC 2518, Section 10.1 |
requests.status_code3 | requests.status_code4 | HTTP/1.1 RFC 7231, Phần 4.3.4RFC 8297 |
requests.status_code5 | requests.status_code6 | HTTP/1.1 RFC 7231, Phần 4.3.5RFC 7231, Section 6.3.1 |
requests.status_code7 | requests.status_code8 | 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 | 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 | 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 | 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 | 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 |
|
>>> 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 | >>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]0 |
|
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]1 | >>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]2 | 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] |
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]3 | >>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]4 | 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 |
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]5 | >>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]6 | Python request.py3 cung cấp sự kiên trì của bánh quyRFC 7231, Section 6.4.1 |
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]7 | >>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]8 | Mô -đun |
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]9 |
| classhttp.httpstatus¶RFC 7231, Section 6.4.3 |
|
| HTTP/1.1 RFC 7231, Mục 6.4.4RFC 7231, Section 6.4.4 |
|
| HTTP/1.1 RFC 7232, Phần 4.1RFC 7232, Section 4.1 |
|
| HTTP/1.1 RFC 7231, Mục 6.4.5RFC 7231, Section 6.4.5 |
|
| HTTP/1.1 RFC 7231, Mục 6.4.7RFC 7231, Section 6.4.7 |
|
| Chuyển hướng vĩnh viễn RFC 7238, Phần 3 [thử nghiệm]RFC 7238, Section 3 [Experimental] |
|
| HTTP/1.1 RFC 7231, Mục 6.5.1RFC 7231, Section 6.5.1 |
|
| HTTP/1.1 Xác thực RFC 7235, Phần 3.1RFC 7235, Section 3.1 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.2RFC 7231, Section 6.5.2 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.3RFC 7231, Section 6.5.3 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.4RFC 7231, Section 6.5.4 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.5RFC 7231, Section 6.5.5 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.6RFC 7231, Section 6.5.6 |
|
| HTTP/1.1 Xác thực RFC 7235, Phần 3.2RFC 7235, Section 3.2 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.7RFC 7231, Section 6.5.7 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.8RFC 7231, Section 6.5.8 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.9RFC 7231, Section 6.5.9 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.10RFC 7231, Section 6.5.10 |
|
| HTTP/1.1 RFC 7232, Phần 4.2RFC 7232, Section 4.2 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.11RFC 7231, Section 6.5.11 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.12RFC 7231, Section 6.5.12 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.13RFC 7231, Section 6.5.13 |
|
| HTTP/1.1 Range Yêu cầu RFC 7233, Phần 4.4RFC 7233, Section 4.4 |
|
| HTTP/1.1 RFC 7231, Mục 6.5.14RFC 7231, Section 6.5.14 |
|
| HTCPCP/1.0 RFC 2324, Phần 2.3.2RFC 2324, Section 2.3.2 |
| Python request.py00 | HTTP/2 RFC 7540, Phần 9.1.2RFC 7540, Section 9.1.2 |
Python request.py01 | Python request.py02 | WebDAV RFC 4918, Phần 11.2RFC 4918, Section 11.2 |
Python request.py03 | Python request.py04 | WebDAV RFC 4918, Phần 11.3RFC 4918, Section 11.3 |
Python request.py05 | Python request.py06 | WebDAV RFC 4918, Phần 11.4RFC 4918, Section 11.4 |
Python request.py07 | Python request.py08 | Sử dụng dữ liệu ban đầu trong HTTP RFC 8470RFC 8470 |
Python request.py09 | Python request.py10 | HTTP/1.1 RFC 7231, Mục 6.5.15RFC 7231, Section 6.5.15 |
Python request.py11 | Python request.py12 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585 |
Python request.py13 | Python request.py14 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585 |
Python request.py15 | Python request.py16 | Mã trạng thái HTTP bổ sung RFC 6585RFC 6585 |
Python request.py17 | Python request.py18 | 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 | HTTP/1.1 RFC 7231, Mục 6.6.1RFC 7231, Section 6.6.1 |
Python request.py21 | Python request.py22 | HTTP/1.1 RFC 7231, Mục 6.6.2RFC 7231, Section 6.6.2 |
Python request.py23 | Python request.py24 | HTTP/1.1 RFC 7231, Mục 6.6.3RFC 7231, Section 6.6.3 |
Python request.py25 | Python request.py26 | HTTP/1.1 RFC 7231, Mục 6.6.4RFC 7231, Section 6.6.4 |
Python request.py27 | Python request.py28 | HTTP/1.1 RFC 7231, Mục 6.6.5RFC 7231, Section 6.6.5 |
Python request.py29 | Python request.py30 | HTTP/1.1 RFC 7231, Mục 6.6.6RFC 7231, Section 6.6.6 |
Python request.py31 | Python request.py32 | Đà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 | WebDAV RFC 4918, Phần 11.5RFC 4918, Section 11.5 |
Python request.py35 | Python request.py36 | 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 | Khung mở rộng HTTP RFC 2774, Phần 7 [thử nghiệm]RFC 2774, Section 7 [Experimental] |
Python request.py39 | Python request.py40 | Mã trạng thái HTTP bổ sung RFC 6585, Phần 6RFC 6585, Section 6 |
Để duy trì khả năng tương thích ngược, các giá trị enum cũng có mặt trong mô -đun http.client
dưới dạng hằng số. Tên enum bằng với tên hằng số [nghĩa là
Python request.py42 cũng có sẵn là
Python request.py43].
Đã thay đổi trong phiên bản 3.7: Đã thêm mã trạng thái Python request.py
44.Added
Python request.py44 status code.
Mới trong phiên bản 3.8: Đã thêm mã trạng thái Python request.py
45.Added
Python request.py45 status code.
Mới trong phiên bản 3.9: Đã thêm Python request.py
46, Python request.py
47 và Python request.py
48 Mã trạng thái.Added
Python request.py46,
Python request.py47 and
Python request.py48 status codes. classhttp.httpmethod¶http.HTTPMethod¶
Mới trong phiên bản 3.11.
Một lớp con của
Python request.py49 xác định một tập hợp các phương thức và mô tả HTTP được viết bằng tiếng Anh.
Usage:
>>> from http import HTTPMethod >>> HTTMethod.GET HTTMethod.GET >>> HTTMethod.GET == 'GET' True >>> HTTMethod.GET.value 'GET' >>> HTTMethod.GET.description 'Transfer a current representation of the target resource.' >>> list[HTTPMethod] [HTTPMethod.GET, HTTPMethod.HEAD, ...]
Phương pháp HTTP
Các phương pháp được hỗ trợ, đã đăng ký IANA có sẵn trong
Python request.py50 là:
Python request.py51 | Python request.py51 | HTTP/1.1 RFC 7231, Phần 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.2 |
Python request.py55 | Python request.py55 | HTTP/1.1 RFC 7231, Phần 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.4 |
Python request.py59 | Python request.py59 | HTTP/1.1 RFC 7231, Phần 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.6 |
Python request.py63 | Python request.py63 | HTTP/1.1 RFC 7231, Phần 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.8 |
Python request.py67 | Python request.py67 | HTTP/1.1 RFC 5789RFC 5789 |