Hướng dẫn session info python - thông tin phiên python

session_info

import requests
0 Thông tin phiên bản đầu ra cho các mô -đun được tải trong phiên hiện tại, Python, HĐH và CPU. Nó được thiết kế như một biện pháp tối thiểu để tăng độ tái lập và cung cấp thông tin tương tự như
import requests
1 và
import requests
2 trong R.

Động lực

import requests
0 đặc biệt hữu ích khi tiến hành phân tích dữ liệu khám phá trong sổ ghi chép Jupyter. Liệt kê số phiên bản của tất cả các mô -đun được tải sau khi nhập chúng là một cách đơn giản để đảm bảo mức độ tái lập tối thiểu trong khi yêu cầu ít nỗ lực bổ sung. Thực tiễn này là hữu ích cả khi xem lại sổ ghi chép và khi chia sẻ chúng với các đồng nghiệp.
import requests
0 có nghĩa là để bổ sung cho các thực tiễn mạnh mẽ hơn như môi trường ảo, thùng chứa và chất kết dính đông lạnh.

Cài đặt

import requests
0 có thể được cài đặt thông qua
import requests
6. Nó không phụ thuộc vào trình quản lý gói để tìm số phiên bản vì nó lấy chúng từ chuỗi phiên bản của mô -đun. Sự phụ thuộc duy nhất của nó là
import requests
7, được sử dụng để phân biệt giữa các mô -đun thư viện tiêu chuẩn và bên thứ ba.

Cách sử dụng

import requests
0 có thể được sử dụng từ một tập lệnh như vậy:

import math

import natsort
import pandas
import session_info


session_info.show()

Output:

Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59

Hành vi mặc định là chỉ các mô -đun đầu ra không có trong thư viện tiêu chuẩn, đó là lý do tại sao mô -đun

import requests
9 bị bỏ qua ở trên (nó có thể được bao gồm bằng cách chỉ định
import requests
req = requests.get('https://tutsplus.com/')
0). Để bao gồm không chỉ các mô -đun được nhập rõ ràng, mà còn bất kỳ sự phụ thuộc nào họ nhập nội bộ, chỉ định
import requests
req = requests.get('https://tutsplus.com/')
1.

Khi

import requests
0 được gọi từ máy tính xách tay Jupyter, đầu ra được che giấu trong các thẻ
import requests
req = requests.get('https://tutsplus.com/')
3 và sẽ chỉ hiển thị khi nhấp. Vì điều này tiết kiệm bất động sản trực quan, bất kỳ mô -đun nào được nhập gián tiếp vì các phụ thuộc sẽ được bao gồm theo mặc định và có vẻ như thế này:

Bấm để xem thông tin phiên ____2Click để xem các mô -đun được nhập dưới dạng phụ thuộc ____3
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59

Nếu bạn thích hiển thị thông tin phiên mà không có thẻ HTML, bạn có thể sử dụng

import requests
req = requests.get('https://tutsplus.com/')
4 trong sổ ghi chép để có được đầu ra giống như trong ví dụ đầu tiên ở trên.

import requests
0 cũng có thể viết các phụ thuộc mô -đun vào tệp
import requests
req = requests.get('https://tutsplus.com/')
6, tương thích với
import requests
req = requests.get('https://tutsplus.com/')
7.

Xem DocString để biết thông tin tham số đầy đủ.

Tiểu sử

import requests
0 bắt đầu như những sửa đổi nhỏ của
import requests
req = requests.get('https://tutsplus.com/')
9 và khi nó phát triển, nó trở nên thuận tiện để tạo ra một gói mới.
import requests
0 được xây dựng với sự trợ giúp của thông tin được cung cấp trong các câu trả lời của StackOverflow và các gói tương tự hiện có, bao gồm cả

  • https://github.com/fbrundu/py_session
  • https://github.com/jrjohansson/version_information
  • https://github.com/rasbt/watermark
  • https://stackoverflow.com/a/4858123/2166823
  • https://stackoverflow.com/a/40690954/2166823
  • https://stackoverflow.com/a/52187331/2166823

Đã đăng vào thg 5 9, 6:40 SA 1 phút đọc 1 phút đọc 1 phút đọc

Thư viện yêu cầu (Requests library) là một mặt rất quan trọng của Python để tạo ra những yêu cầu HTTP tới một đường dẫn (URL) cụ thể nào đó. Bài viết này nhằm hướng dẫn tạo yêu cầu POST tới một đường dẫn cụ thể, bằng cách sử dụng phương thức requests.post()

Đầu tiên, cùng tìm hiểu POST là gì

POST là một phương thức yêu cầu được hỗ trợ bởi giao thức HTTP khi sử dụng Web. Thông thường, phương thức post sẽ đưa ra yêu cầu để máy chủ web (web server) chấp nhận thông tin được gửi trong nội dung tin nhắn yêu cầu (request message), mà đa phần là để lưu trữ nó. Nội dung này sẽ được sử dụng khi upload file hoặc submit một web form nào đó.

Cách tạo POST trên Python

Sử dụng hàm có sẵn để gọi post() theo cú pháp sau:

requests.post(url, params={key: value}, args)

Ví dụ:

import requests

# Making a POST request
r = requests.post('https://httpbin.org / post', data ={'key':'value'})

# check status code for response received
# success code - 200
print(r)

# print content of request
print(r.json())

lưu thành file request.py và bắt đầu chạy. Kết quả sẽ ra như bên dưới:

  1. Lợi ích của phương thức POST Bảo mật hơn phương thức GET, vì thông tin người dùng nhập vào sẽ không hiển thị trong log trên server. Lượng dữ liệu truyền đi bởi phương thức POST sẽ lớn hơn

  2. Hạn chế của phương thức POST Lịch sử của POST không được lưu trên cache hoặc lịch sử duyệt web

All rights reserved

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Dai Phong (you can also view the original English article) Dai Phong (you can also view the original English article)

Requests là một mô-đun Python mà bạn có thể sử dụng để gửi tất cả các loại yêu cầu HTTP. Đây là một thư viện dễ sử dụng với nhiều tính năng khác nhau, từ việc truyền các tham số trong URL cho đến gửi các header tùy biến và Xác minh SSL. Trong hướng dẫn này, bạn sẽ được học cách sử dụng thư viện requests để gửi các yêu cầu HTTP đơn giản bằng Python.

Bạn có thể sử dụng Requests với Python phiên bản 2.6-2.7 và 3.3-3.6. Trước khi tiếp tục, bạn nên biết rằng Requests là một mô-đun bên ngoài, do đó bạn sẽ phải cài đặt nó trước khi chạy thử các ví dụ trong hướng dẫn này. Bạn có thể cài đặt nó bằng cách chạy lệnh sau đây trong terminal:

pip install requests

Một khi bạn đã cài đặt mô-đun, bạn có thể kiểm tra nó đã được cài đặt thành công hay chưa bằng cách import nó bằng lệnh này:

import requests

Nếu cài đặt thành công, bạn sẽ không thấy bất kỳ thông báo lỗi nào.

Tạo một Yêu cầu GET

Rất dễ để gửi một yêu cầu HTTP bằng Requests. Bạn bắt đầu bằng cách import module và sau đó thực hiện yêu cầu. Dưới đây là một ví dụ:

import requests
req = requests.get('https://tutsplus.com/')

Tất cả các thông tin về yêu cầu của chúng ta bây giờ được lưu trữ trong một đối tượng Response được gọi là

pip install requests
3. Ví dụ: bạn có thể lấy mã hóa của trang web bằng thuộc tính
pip install requests
4. Bạn cũng có thể lấy mã trạng thái của yêu cầu bằng thuộc tính
pip install requests
5.
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
2

Bạn có thể truy cập các cookie mà máy chủ đã gửi lại bằng

pip install requests
6. Tương tự, bạn có thể nhận các header phản hồi bằng
pip install requests
7. Thuộc tính
pip install requests
7 trả về một dictionary chứa các header phản hồi không phân biệt chữ hoa chữ thường. Điều này có nghĩa là
pip install requests
9,
import requests
0 và
import requests
1 tất cả sẽ trả về giá trị của header phản hồi
import requests
2.

Bạn có thể kiểm tra xem phản hồi có phải là một redirect HTTP đúng ngữ pháp mà có thể đã được xử lý tự động bằng thuộc tính

import requests
3. Nó sẽ trả về
import requests
4 hay
import requests
5 dựa trên phản hồi. Bạn cũng có thể lấy được thời gian trôi qua giữa gửi yêu cầu và nhận lại phản hồi bằng thuộc tính
import requests
6.

URL mà bạn truyền cho hàm

import requests
7 có thể khác với URL sau cùng của phản hồi vì nhiều lý do, kể cả redirect. Để xem URL phản hồi sau cùng, bạn có thể sử dụng thuộc tính
import requests
8.
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
6

Nhận tất cả các thông tin này về trang web mà bạn đang truy cập là điều rất tốt, nhưng có thể bạn muốn truy cập vào nội dung thật sự. Nếu nội dung mà bạn đang truy cập là văn bản, bạn có thể sử dụng thuộc tính

import requests
9 để truy xuất nó. Nội dung sau đó được phân tích thành unicode. Bạn có thể truyền vào mã hoá để giải mã văn bản bằng thuộc tính
pip install requests
4.

Trong trường hợp phản hồi không phải là văn bản, bạn có thể truy cập chúng dưới dạng nhị phân bằng

import requests
req = requests.get('https://tutsplus.com/')
1. Mô-đun này sẽ tự động giải mã
import requests
req = requests.get('https://tutsplus.com/')
2 và
import requests
req = requests.get('https://tutsplus.com/')
3. Điều này có thể hữu ích khi bạn đang xử lý các tập tin media. Tương tự, bạn có thể truy cập nội dung đã được mã hóa dạng json của phản hồi, nếu có, hãy sử dụng
import requests
req = requests.get('https://tutsplus.com/')
4.

Bạn cũng có thể lấy được phản hồi gốc từ máy chủ bằng

import requests
req = requests.get('https://tutsplus.com/')
5. Hãy nhớ rằng bạn sẽ phải truyền vào
import requests
req = requests.get('https://tutsplus.com/')
6 trong yêu cầu để có được phản hồi gốc.

Một số tập tin mà bạn tải xuống từ Internet sử dụng mô-đun Requests có thể có một kích thước rất lớn. Trong những trường hợp như vậy, không nên tải toàn bộ phản hồi hoặc tập tin vào bộ nhớ cùng một lúc. Bạn có thể tải xuống từng phần hoặc khối của một tập tin bằng phương thức

import requests
req = requests.get('https://tutsplus.com/')
7.

Phương thức này lặp qua dữ liệu phản hồi bằng số byte

import requests
req = requests.get('https://tutsplus.com/')
8 tại một thời điểm. Khi
import requests
req = requests.get('https://tutsplus.com/')
6 được thiết lập trong yêu cầu, phương thức này sẽ tránh đọc toàn bộ tập tin vào bộ nhớ cùng một lúc cho các phản hồi lớn. Tham số
import requests
req = requests.get('https://tutsplus.com/')
8 có thể là một số nguyên hoặc
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
21. Khi thiết lập một giá trị số nguyên,
import requests
req = requests.get('https://tutsplus.com/')
8 xác định số byte cần đọc vào bộ nhớ.

Khi

import requests
req = requests.get('https://tutsplus.com/')
8 được thiết lập thành
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
21 và
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
25 được thiết lập thành
import requests
4, thì dữ liệu sẽ được đọc khi nó đến trong bất kỳ khối kích thước nào nhận được. Khi
import requests
req = requests.get('https://tutsplus.com/')
8 được thiết lập thành
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
21 và
Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
25 được thiết lập thành
import requests
5, tất cả các dữ liệu sẽ được trả về như một khối đơn.

Hãy tải hình ảnh khu rừng trên Pixabay bằng mô-đun Requests. Đây là hình ảnh thực tế:

Đây là code mà bạn cần:

-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
9
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
61 là URL hình ảnh thực tế; bạn có thể thiết lập URL của bất kỳ hình ảnh nào khác vào đây để tải về cái khác. Tập tin hình ảnh đó có kích thước 185kb và bạn đã thiết lập
import requests
req = requests.get('https://tutsplus.com/')
8 thành 50.000 byte. Điều này có nghĩa là thông điệp "Received a Chunk" sẽ được in bốn lần trong terminal. Kích thước của khối cuối cùng sẽ chỉ là 39350 byte bởi vì phần còn lại của tập tin nhận được sau ba lần lặp đầu tiên là 39350 byte.

Requests cũng cho phép bạn truyền các tham số trong một URL. Điều này có thể hữu ích khi bạn đang tìm kiếm trang web để lấy một số kết quả như hình ảnh hoặc bài hướng dẫn cụ thể. Bạn có thể cung cấp các chuỗi truy vấn này như là một dictionary bằng từ khóa

-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
63 trong yêu cầu GET. Dưới đây là một ví dụ:
import requests

# Making a POST request
r = requests.post('https://httpbin.org / post', data ={'key':'value'})

# check status code for response received
# success code - 200
print(r)

# print content of request
print(r.json())

3

Tạo một Yêu cầu POST

Tạo một yêu cầu POST cũng tương tự như yêu cầu GET. Bạn chỉ cần sử dụng hàm

-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
64 thay cho
import requests
7. Việc này có thể hữu ích khi bạn tự động submit các form. Ví dụ, đoạn code sau sẽ tải toàn bộ trang Wikipedia về Công nghệ Nano và lưu nó trên máy tính của bạn.
import requests

# Making a POST request
r = requests.post('https://httpbin.org / post', data ={'key':'value'})

# check status code for response received
# success code - 200
print(r)

# print content of request
print(r.json())

6

Như đã đề cập ở trên, bạn có thể truy cập các cookie và header mà máy chủ gửi lại cho bạn bằng

-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
66 và
pip install requests
7. Requests cũng cho phép bạn gửi các cookie và header tùy biến của riêng bạn cùng với một yêu cầu. Điều này có thể hữu ích khi bạn muốn, giả sử thiết lập một user agent tùy biến cho yêu cầu của bạn.

Để thêm các header HTTP vào yêu cầu, bạn chỉ cần truyền chúng trong một

-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
68 vào tham số
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
69. Tương tự, bạn cũng có thể gửi cookie của riêng bạn đến một máy chủ bằng cách sử dụng
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
68 truyền vào tham số
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
91.
pip install requests
3

Cookie cũng có thể được truyền thông qua trong một Cookie Jar. Chúng cung cấp một giao diện đầy đủ hơn để cho phép bạn sử dụng các cookie đó trên nhiều đường dẫn. Dưới đây là một ví dụ:

pip install requests
0

Các Đối tượng Session

Đôi khi cần phải giữ nguyên các tham số nhất định trên nhiều yêu cầu. Đối tượng Session xử lý chính xác điều đó. Ví dụ, nó sẽ giữ dữ liệu cookie trên tất cả các yêu cầu được thực hiện bằng cùng một session. Đối tượng Session sử dụng connection-pooling của urllib3. Điều này có nghĩa là kết nối TCP bên dưới sẽ được sử dụng lại cho tất cả các yêu cầu được thực hiện đến cùng một máy chủ. Điều này có thể gia tăng đáng kể hiệu suất. Bạn cũng có thể sử dụng các phương thức của đối tượng Requests với đối tượng Session.

Dưới đây là ví dụ về nhiều yêu cầu được gửi bằng cách sử dụng và không sử dụng session:

pip install requests
1

Như bạn thấy, cookie session có một giá trị khác nhau trong yêu cầu thứ nhất và thứ hai, nhưng nó có cùng giá trị khi chúng ta sử dụng đối tượng Session. Bạn sẽ nhận được một giá trị khác khi thử code này, nhưng cũng tương tự, cookie cho các yêu cầu được thực hiện bằng cách sử dụng đối tượng Session sẽ có cùng giá trị.

Session cũng hữu ích khi bạn muốn gửi dữ liệu tương tự trên tất cả các yêu cầu. Ví dụ, nếu bạn quyết định gửi một cookie hoặc một header user-agent với tất cả các yêu cầu đến một tên miền nhất định, bạn có thể sử dụng các đối tượng Session. Dưới đây là một ví dụ:

pip install requests
2

Như bạn có thể thấy, cookie session

-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
92 được gửi cùng với cả ba yêu cầu. Tuy nhiên, cookie
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
93 chỉ được gửi trong yêu cầu thứ hai. Còn chưa đề cập đến cookie
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch2-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59
94 trong yêu cầu thứ ba. Điều này xác nhận thực tế rằng cookie hoặc tập dữ liệu khác trên các yêu cầu riêng lẻ sẽ không được gửi cùng với các yêu cầu session khác.

Phần tóm tắt

Các khái niệm được thảo luận trong hướng dẫn này sẽ giúp bạn tạo các yêu cầu đến máy chủ cơ bản bằng cách truyền header, cookie hoặc chuỗi truy vấn cụ thể. Điều này sẽ rất tiện dụng khi bạn đang cố gắng thu thập thông tin từ một số trang web. Giờ đây, bạn sẽ có thể tự động tải các bài nhạc và hình nền từ các trang web khác nhau sau khi bạn đã tìm ra URL mẫu.

Đừng ngần ngại xem thử những gì chúng tôi đang bán và những tài liệu dành cho học tập trên Market, và đừng ngần ngại đặt câu hỏi và cung cấp các phản hồi có giá trị của bạn.

Nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn này, xin vui lòng cho tôi biết trong phần bình luận nhé.