HTTP trong Python: thư viện Request
Đã đến lúc đưa tay của chúng ta bận rộn với một vài Python code. Nhớ lại mục đính chính của web scraping là giành
dữ liệu từ web trong phong cách tự động. Về cơ bản, chúng ta ném đi trình duyệt web của chúng ta và chúng ta sẽ
lướt web sử dụng một chương trình Python thay vào. Cái này có nghĩa chương trình Python của chúng ta sẽ cần có
thể nói và hiểu HTTP.
Hoàn toàn thì, chúng ta có thể cố gắng lập trình cái này bản thân chúng ta trên đỉnh của Python tích hợp xong chức
năng liên mạng tiêu chuẩn. (hay ngôn ngữ khác cho phong cách đó), đảm bảo rằng chúng ta gần như format các thông
điệp yêu cầu HTTP và chúng ta có thể duyệt các trả lời đi đến. Tuy nhiên, chúng ta không quan tâm sáng tạo lại bánh
xe, và có nhiều thư viện Python ngoài kia đã làm nhiệm vụ này thoải mái hơn nhiều, để rằng chúng ta có thể tập trung
lên cái chúng ta thực sự đang cố gắng hoàn thành.
Trên thực tế, có một vài thư viện trong hệ sinh thái Python cái quan tâm HTTP cho chúng ta. Gọi tên một vài cái:
+ Python 3 đi với một module tích hợp gọi là “urllib,”, cái có thể làm việc với tất cả các thứ HTTP. (xem
(xem https://docs.python.org/3/library/urllib.html). Module đã được chỉnh sửa mạnh so sánh với đối trọng của nó
trong Python 2, nơi chức năng HTTP được chia tách trong cả “urllib” và “urllib2” và một chút khó khăn để làm
việc với.
+ “httplib2” (xem https://github.com/httplib2/httplib2): một thư viện máy khách HTTP nhanh, nhỏ. Được tạo ban đầu
bởi Googler Joe Gregorio, và bây giờ hỗ trợ bởi cộng đồng.
+ “urllib3” (xem https://urllib3.readthedocs.io/): một máy khách HTTP mạnh mẽ cho Python, sử dụng bởi thư viện
requests dưới đây.
+ “requests” (xem http://docs.python-requests.org/): một thư viện HTTP đơn giản và thanh lịch cho Python, xây dựng
cho con người.
+ “grequests” (xem https://pypi.python.org/pypi/grequests): cái mở rộng requests để làm việc với các yêu cầu HTTP
không đồng bộ và đồng thời.
+ “aiohttp” (xem http://aiohttp.readthedocs.io/): thư viện khác tập trung vào HTTP không đồng bộ.