Hướng dẫn này chỉ cho bạn cách thực hiện các yêu cầu nhận HTTP đơn giản để nhận trang HTML từ một URL nhất định bằng Python
Xây dựng vấn đề
Đưa ra một URL dưới dạng một chuỗi. Làm cách nào để trích xuất HTML từ URL đã cho và lưu kết quả vào biến chuỗi Python?
Thí dụ. Nói rằng, bạn muốn thực hiện những điều sau đây
url = '//google.com' # .. Code to extract HTML page here ... print[result] # .. Google HTML file: ''' Google... '''
Hãy nghiên cứu bốn phương pháp quan trọng nhất để truy cập một trang web trong tập lệnh Python của bạn
Phương pháp 1. yêu cầu. lấy [url]
Giải pháp đơn giản nhất là như sau
import requests print[requests.get[url = '//google.com'].text]
Đây là cách hoạt động của một lớp lót này
- Nhập thư viện Python
import requests print[requests.get[url = '//google.com'].text]
0 xử lý các chi tiết yêu cầu trang web từ máy chủ ở định dạng dễ xử lý - Sử dụng phương thức
import requests print[requests.get[url = '//google.com'].text]
1 để truy cập trang web và chuyển URLimport requests print[requests.get[url = '//google.com'].text]
2 làm đối số để hàm biết vị trí nào sẽ truy cập - Truy cập phần thân thực của get
import requests print[requests.get[url = '//google.com'].text]
3 [giá trị trả về là một đối tượng yêu cầu cũng chứa một số thông tin meta hữu ích như loại tệp, v.v. ] - In kết quả ra shell
Đầu ra là trang web Google mong muốn
''' Google... '''
Lưu ý rằng bạn có thể phải cài đặt thư viện yêu cầu bằng lệnh sau trong thiết bị đầu cuối hệ điều hành của mình
$ pip install requests
Phương pháp 2. Một lớp lót với các yêu cầu. lấy[]
Đôi khi bạn không muốn mở phiên Python tương tác để truy cập URL. Không thành vấn đề, bạn có thể đặt giải pháp trước đó thành một lớp lót và chạy nó từ dòng lệnh hoặc thiết bị đầu cuối của hệ điều hành của bạn
Lưu ý rằng dấu chấm phẩy được sử dụng để lót một phương thức đã thảo luận trước đó. Điều này hữu ích nếu bạn muốn chạy lệnh này từ hệ điều hành của mình bằng lệnh sau
________số 8Một lần nữa, đầu ra là trang Google HTML mong muốn
''' Google... '''
Phương pháp 3. urllib. lời yêu cầu
Một cách được đề xuất để tìm nạp tài nguyên web từ một trang web là hàm
import requests print[requests.get[url = '//google.com'].text]4. Điều này cũng hoạt động để tạo một lớp lót đơn giản để truy cập trang web Google bằng Python 3 như trước đây
import requests print[requests.get[url = '//google.com'].text]1
Một lần nữa, bạn trả về một đối tượng
import requests print[requests.get[url = '//google.com'].text]5 có thể được truy cập để đọc phản hồi của máy chủ
Lưu ý rằng điều này đọc tệp dưới dạng chuỗi byte. Nếu bạn muốn đọc tệp HTML dưới dạng chuỗi, bạn cần chuyển đổi kết quả bằng phương thức
import requests print[requests.get[url = '//google.com'].text]6 của Python
import requests print[requests.get[url = '//google.com'].text]4
Đây là đầu ra của đoạn mã này với hầu hết nội dung HTML được bỏ qua cho ngắn gọn
import requests print[requests.get[url = '//google.com'].text]5
🌍 Hướng dẫn đề xuất. Làm cách nào để mở một URL trong trình duyệt của bạn từ tập lệnh Python?
Phương pháp 4. Một lớp lót với urllib. lời yêu cầu
Bạn cũng có thể nhồi nhét mọi thứ vào một dòng để bạn có thể chạy nó từ thiết bị đầu cuối của hệ điều hành của mình
import requests print[requests.get[url = '//google.com'].text]6
Tự mình thử
Bạn có thể tự thử Phương pháp 1 và 3 trong sổ tay Jupyter tương tác của chúng tôi với URL trang web mong muốn của riêng bạn
Để nâng cao kỹ năng của bạn về Python, vui lòng xem qua học viện email Python toàn diện nhất thế giới và tải xuống bảng gian lận Python của bạn tại đây
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây