Dữ liệu POST trong Python sử dụng gói yêu cầu. Bài viết này sẽ hướng dẫn bạn cách ĐĂNG dữ liệu JSON với thư viện Yêu cầu Python.

Bạn đang xem : Yêu cầu python gửi dữ liệu

Yêu cầu POST là một loại phương thức HTTP cụ thể được sử dụng khi chúng tôi gửi dữ liệu đến các dịch vụ trên web. Chúng tôi sử dụng chúng trên các trang web sử dụng biểu mẫu – khi chúng tôi đăng nhập, khi chúng tôi gửi tin nhắn hoặc đăng hình ảnh. Các ứng dụng cũng sử dụng các yêu cầu POST để tương tác với các dịch vụ khác để gửi dữ liệu với JSON là định dạng dữ liệu phổ biến để trao đổi.

Thư viện Request là một trong những thư viện máy khách HTTP phổ biến nhất cho Python. Nó hiện có hơn 45 nghìn sao trên Github, với lượt tải xuống trên PyPI là 115 triệu một tháng! Nó làm cho việc gửi các yêu cầu POST theo lập trình đơn giản hơn nhiều so với việc phải gửi dữ liệu qua một trình duyệt không có đầu. Với một trình duyệt không có đầu, chúng ta cần viết các tập lệnh để điều hướng đến một trang web, di chuyển giữa các trường, điền vào từng trường dữ liệu mong muốn trước khi gửi dữ liệu. Bằng cách gửi yêu cầu ĐĂNG, chúng tôi sẽ chuyển thẳng đến bước gửi cuối cùng. Yêu cầu cũng là một thư viện nhỏ hơn rất nhiều so với trình duyệt, dẫn đến hiệu suất và sử dụng bộ nhớ tốt hơn.

Trong bài viết này, chúng tôi sẽ trình bày cách tạo một yêu cầu ĐĂNG bằng cách sử dụng Yêu cầu và cách nó có thể giúp quá trình này đơn giản hơn nhiều đối với chúng tôi.

Tạo Yêu cầu ĐĂNG JSON với các Yêu cầu

Ví dụ: hãy bắt đầu bằng cách xây dựng một yêu cầu JSON POST một cách khó khăn. Đừng lo lắng Yêu cầu sẽ đơn giản hóa việc này cho chúng tôi sau! Chúng tôi đang sử dụng dịch vụ httpbin.org, dịch vụ này trả về phản hồi JSON nêu chi tiết nội dung đã được gửi.

1. Đặt Phương thức Yêu cầu thành ĐĂNG

Các yêu cầu có thiết kế dựa trên động từ HTTP thực sự đơn giản, có nghĩa là để nhận được phản hồi, chúng tôi gọi đó là phương thức .post () cung cấp URI của chúng tôi làm đối số. Nó cũng cung cấp các phương thức tương tự cho các yêu cầu GET, PUT và PATCH.

  

nhập

yêu cầu r

=

yêu cầu

.

đăng (

"https://httpbin.org/post"

)

2. Đặt dữ liệu ĐĂNG

Để thực sự gửi một số dữ liệu, chúng tôi cung cấp một đối số dữ liệu. Theo mặc định, dữ liệu được gửi bằng biểu mẫu HTML như chúng tôi sẽ nhận được bằng cách gửi bất kỳ biểu mẫu nào trên web. Yêu cầu đặt loại nội dung thành ‘application / x-www-form-urlencoded’, vì vậy không cần đặt bất kỳ tiêu đề nào.

  

nhập

yêu cầu

nhập

json r

=

yêu cầu

.

đăng (

"https://httpbin.org/post"

, dữ liệu

=

{

"khoá"

:

"giá trị"

}, )

Kiểm tra phản hồi từ dịch vụ httpbin.org, chúng tôi có thể thấy những gì đã được gửi dưới dạng dữ liệu biểu mẫu trong khóa “biểu mẫu”.

  

& gt; & gt; & gt;

r

.

text

'{

\ n

"args":

{}

,

\ n

"dữ liệu": "",

\ n

"tệp":

{}

,

\ n

"biểu mẫu": {

\ n

"khoá": "giá trị"

\ n

},

\ n

"tiêu đề": {

\ n

"Chấp nhận": "* / *",

\ n

"Chấp nhận mã hóa": "gzip, deflate",

\ n

"Độ dài Nội dung": "9",

\ n

"Loại Nội dung": "application / x-www-form-urlencoded", < / p>

\ n

"Máy chủ": "httpbin.org",

\ n

"Tác nhân người dùng": "python- request / 2.25.1 ",

\ n

" X-Amzn-Trace-Id ":" Root = 1-60df1a04-0384d3ce7d9ac00b5855064b "

\ n

},

\ n

"json": null,

\ n

"nguồn gốc ":" **. ***. **. *** ",

\ n

" url ":" https://httpbin.org/post "< / p>

\ n

}

\ n

'

Nếu chúng tôi muốn gửi JSON, chúng tôi có thể cung cấp một chuỗi có định dạng JSON. Trong ví dụ của chúng tôi, chúng tôi đang sử dụng mô-đun json để chuyển từ điển sang chuỗi có định dạng JSON sẵn sàng gửi.

  

nhập

yêu cầu

nhập

json r

=

yêu cầu

.

đăng (

"https://httpbin.org/post"

, data

=

json

.

kết xuất ({

"key"

:

"value"

}), )

3. Đặt tiêu đề BÀI ĐĂNG

Ví dụ về JSON của chúng tôi sẽ không hoạt động như hiện tại. Với nhiều dịch vụ, chúng tôi có thể sẽ nhận được mã trạng thái HTTP 400 (Yêu cầu không hợp lệ). Để ngăn chặn điều này, chúng tôi cũng cần thông báo cho dịch vụ mà chúng tôi đang gọi rằng dữ liệu của chúng tôi là JSON để dữ liệu có thể được xử lý chính xác. Để làm như vậy, chúng tôi đặt ‘Loại nội dung’ thành ‘ứng dụng / json’ trong tiêu đề yêu cầu:

  

nhập

yêu cầu

nhập

json r

=

yêu cầu

.

đăng (

"https://httpbin.org/post"

, data

=

json

.

kết xuất ({

"key"

:

"value"

}), tiêu đề

=

{

"Loại-Nội dung"

:

"ứng dụng / json"

}, )

4. ĐĂNG dữ liệu JSON

Nếu bạn cho rằng các ví dụ JSON của chúng tôi cho đến nay trông hơi phức tạp – thì bạn hoàn toàn đúng. Yêu cầu giúp bạn dễ dàng giảm bớt tất cả những điều này thành một cuộc gọi đơn giản hơn nhiều. Chúng tôi chỉ có thể cung cấp đối số ‘json’ với dữ liệu của chúng tôi. Các yêu cầu sẽ tự động đặt tiêu đề của chúng tôi một cách chính xác và mã hóa chuỗi có định dạng JSON cho chúng tôi.

  

nhập

yêu cầu r

=

yêu cầu

.

đăng (

'https://httpbin.org/post'

, json

=

{< p> 'key'

:

'value'

})

Đọc phản hồi JSON

Bằng cách kiểm tra phản hồi từ dịch vụ của chúng tôi, chúng tôi có thể thấy dữ liệu trả về cũng là một chuỗi có định dạng JSON. Đây chỉ là văn bản, vì vậy chúng tôi cần tự phân tích cú pháp để sử dụng nó trong tập lệnh Python của chúng tôi.

  

& gt; & gt; & gt;

r

.

text

'{

\ n

"args":

{}

,

\ n

"data": "{

\\

" key

\\

":

\\

"giá trị

\\

"} ",

\ n

"tệp":

{}

,

\ n

"biểu mẫu":

< p> {}

,

\ n

"tiêu đề": {

\ n

" Chấp nhận ":" * / * ",

\ n

" Chấp nhận mã hóa ":" gzip, deflate ",

\ n

"Độ dài nội dung": "16",

\ n

"Loại nội dung": "application / json",

\ n

"Máy chủ lưu trữ": "httpbin.org",

\ n

"Tác nhân người dùng": "python-request / 2.25.1", < / p>

\ n

"X-Amzn-Trace-Id": "Root = 1-60df0aaa-3105fc35436042571335fa22"

\ n

},

\ n

"json": {

\ n

"key": "value"

\ n

},

\ n

"origin": "**. ***. **. ***",

\ n

"url": "https://httpbin.org/post"

\ n

}

\ n

'

Ngoài ra, nếu chúng ta muốn truy cập phản hồi dưới dạng đối tượng JSON, chúng ta cũng có thể sử dụng Yêu cầu được tích hợp trong bộ giải mã JSON bằng cách gọi .json () trên đối tượng phản hồi.

  

& gt; & gt; & gt;

r

.

json () Tệp {

'args'

: {},

'data'

:

'{"key": "value"}'

,

' '

: {},

' biểu mẫu '

: {},

' tiêu đề '

: {

' Chấp nhận '

:

' * / * '

,

' Chấp nhận mã hóa '

:

' gzip, deflate '

,

' Độ dài nội dung '

:

'16 '

,

' Loại-Nội dung '

:

' application / json '

,

' Máy chủ '

:

' httpbin.org '

,

' Tác nhân người dùng '

:

' python-request / 2.25.1 '

,

' X-Amzn-Trace-Id '

:

' Root = 1-60deee08-4e9c76b6457826d5001b76fa '

},

' json '

: {

' key '

:

'value'

},

'origin'

:

'**. ***. **. ***'

,

'url' < / p>:

'http://httpbin.org/post'

}

Đưa ra yêu cầu ĐĂNG trong một phiên

Ví dụ cuối cùng, cho phép đăng nhập Tin tặc bằng Yêu cầu và gửi một số dữ liệu biểu mẫu để đăng nhập kết hợp với đối tượng request.Session () . Mọi cookie mà chúng tôi nhận được sẽ được lưu trữ trong đối tượng và sẽ được sử dụng lại trong các lệnh gọi .get () tới phiên sau này.

Đối với ví dụ của chúng tôi, chúng tôi sẽ tìm kiếm văn bản phản hồi của trang tin tức để xác nhận xem chúng tôi có hiển thị liên kết đăng xuất cho biết chúng tôi đang được cung cấp một trang đã đăng nhập hay không.

  

nhập

yêu cầu phiên

=

yêu cầu

.

Phiên () r

=

session

.

post (

"https://news.ycombinator.com/login"

, data

=

{

"acct"

:

"tên người dùng"

,

"pw"

:

"*** không kể ***"

}) r

=

session

.

get (

"https://news.ycombinator.com/news"

) logout_pos

=

r

.

text

.

find (

"đăng xuất"

) print (r

.

text [logout_pos

-

20

: logout_pos

+

20

])

# & lt; a id = 'logout' href = "logout

Tuyệt vời! Liên kết của chúng tôi nằm trong phản hồi cho biết chúng tôi đã đăng nhập. Giờ đây, chúng tôi có thể tiếp tục tương tác với trang web bằng cách sử dụng đối tượng phiên thông qua Yêu cầu.

Kết luận

Bạn đã thấy Yêu cầu đơn giản như thế nào để đăng dữ liệu lên các trang web hoặc dịch vụ và cách chúng tôi có thể giảm thiểu phần lớn mã phổ biến trong các ứng dụng của mình bằng cách sử dụng nó. Thiết kế đơn giản này chắc chắn đã góp phần vào thành công của nó trong cộng đồng Python, khiến nó trở thành một ứng dụng được các nhà phát triển yêu thích. Trước khi sử dụng một trình duyệt không đầu hoàn chỉnh để gửi dữ liệu của mình, bạn chắc chắn nên cân nhắc sử dụng Yêu cầu.

Bạn thường cần proxy cho các dự án duyệt web của mình, đừng ngần ngại xem bài viết này về cách sử dụng proxy với Yêu cầu Python .


Xem thêm những thông tin liên quan đến chủ đề yêu cầu python gửi dữ liệu

Crawl dữ liệu từ trang web với Python

  • Tác giả: Tem Nguyễn
  • Ngày đăng: 2022-05-25
  • Đánh giá: 4 ⭐ ( 9235 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hello các bạn, hôm nay mình sẽ hướng dẫn các bạn crawl (cào) dữ liệu từ 1 trang web bằng python. Qua video này các bạn sẽ biết được thêm một số thư viện hỗ trợ việc crawl, cách để bóc tách dữ liệu từ nguồn trang, cũng như 1 cách để lấy url ẩn của trang web.

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Command install library
    Requests: pip install request
    Beautiful soup: pip install beautifulsoup4

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    Source code: https://github.com/TemNguyen/Python_Crawl

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    *****Music*****
    ♫♪Vindu – Yamadera Peace of Mind♬♩
    https://www.youtube.com/watch?v=wvGughdHLWw
    ♫♪Tenno – Muramasa Legends of the Past♬♩
    https://www.youtube.com/watch?v=nHn6bQE0vzE
    ♫♪Nogymx Raimu – Silver Lake♬♩
    https://www.youtube.com/watch?v=ktJv3VNTPrE

    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    *****About Me******
    FaceBook: https://www.facebook.com/Tem.violet/​​
    GitHub: https://github.com/TemNguyen

Cách bắt đầu với Thư viện yêu cầu bằng Python

  • Tác giả: galaxyz.net
  • Đánh giá: 5 ⭐ ( 8802 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong nhiều ứng dụng web, việc kết nối với các dịch vụ của bên thứ ba khác nhau bằng cách sử dụng API là điều bình thường. Khi bạn sử dụng các API này, bạn có thể truy cập vào dữ liệu như thông tin thời tiết, tỷ số thể thao, danh sách phim, tweet, kết quả của công cụ tìm kiếm và hình ảnh. Bạn cũng có thể sử dụng các API để thêm chức năng cho ứng dụng của bạn . Ví dụ về những điều này là thanh toán, lên lịch, email, bản dịch, bản đồ và chuyển file . Nếu bạn tự tạo bất kỳ cái nào trong số đó thì sẽ mất rất nhiều thời gian, nhưng với API, có thể chỉ mất vài phút để kết nối với một cái và truy cập các tính năng và dữ liệu của nó.

Làm cách nào để gửi một dữ liệu đa dữ liệu / biểu mẫu dữ liệu với các yêu cầu trong python?

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 1576 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Về cơ bản, nếu bạn chỉ định một filestham số (từ điển), thì requestssẽ gửi multipart/form-dataPOST…

Cách crawl dữ liệu web bằng Python

  • Tác giả: nguyenvanhieu.vn
  • Đánh giá: 5 ⭐ ( 3007 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cách crawl dữ liệu web hay cách thu thập dữ liệu web là một thắc mắc của khá nhiều bạn. Lý do bởi hiện nay, có vô vàn các website ở đủ mọi lĩnh vực cung cấp

Hướng dẫn sử dụng API cho người mới bắt đầu

  • Tác giả: t3h.edu.vn
  • Đánh giá: 5 ⭐ ( 2433 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: API – Application Programming Interface là giao diện lập trình ứng dụng. API trong Python được sử dụng để kết nối và tương tác với nhiều thư viện của Python để hỗ trợ lập trình viên trong việc lập trình

Lập trình socket bằng Python

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 8330 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Socket là gì? Socket là giao diện lập trình ứng dụng mạng được dùng để truyền và nhận dữ liệu trên internet. Giữa hai chương trình chạy trên mạng cần có một liên kết giao tiếp hai chiều (two-way commu…

Request cơ bản trong python

  • Tác giả: thongthai.work
  • Đánh giá: 3 ⭐ ( 6810 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  binary và varbinary (Transact-SQL) - SQL Server - kiểu dữ liệu nhị phân trong sql

By ads_php