Urllib là gì?
urllib là một mô-đun của Python có thể dùng để mở các URL. Nó định nghĩa các hàm và lớp giúp thao tác với URL.
Với Python, bạn cũng có thể truy cập và trích xuất dữ liệu từ internet như XML, HTML, JSON, v.v. Bạn cũng có thể sử dụng Python để xử lý trực tiếp các dữ liệu này. Trong hướng dẫn này, chúng ta sẽ xem làm thế nào chúng ta có thể lấy dữ liệu từ web. Ví dụ: ở đây chúng ta sử dụng URL video guru99.com và chúng ta sẽ truy cập URL cũng như in tệp HTML của URL này bằng Python.
Trong bài này, chúng ta sẽ tìm hiểu:
- Cách mở URL bằng Urllib
- Cách đọc tệp HTML từ URL trong Python
Cách mở URL bằng Urllib
Trước khi chạy mã nguồn để kết nối với dữ liệu Internet, chúng ta cần nạp mô-đun thư viện thao tác với URL là “urllib”.
- Nạp mô-đun “urllib”.
- Khai báo hàm main.
- Khai báo biến “webUrl”
- Sau đó gọi hàm urlopen từ thư viện urllib
- URL chúng ta đang mở là bài giảng guru99 trên youtube
- Tiếp theo, chúng ta sẽ in ra mã kết quả.
- Mã kết quả được lấy từ hàm “getcode” trên biến webUrl mà chúng ta vừa khai báo.
- Chúng ta cần chuyển nó sang dạng chuỗi, để nó có thể nối được vào chuỗi “result code”.
- Đây sẽ là mã HTTP thông thường “200”, nó cho thấy yêu cầu http được xử lý thành công.
Cách lấy về tệp HTML từ URL trong Python
Bạn cũng có thể đọc nội dung HTML bằng cách sử dụng hàm “read” trong Python và khi bạn thực thi mã nguồn, dữ liệu HTML sẽ được in ra.
- Gọi hàm đọc read trên biến webURL
- Đọc nội dung của biến tức là bạn đang đọc nội dung các tệp dữ liệu.
- Lưu toàn bộ nội dung mà URL trả về vào một biến data
- Thực thi mã nguồn, nó sẽ in dữ liệu ở dạng HTML ra màn hình.
Dưới đây là mã nguồn hoàn chỉnh
Ví dụ sử dụng Python 2
#
# read the data from the URL and print it
#
import urllib2
def main():
# open a connection to a URL using urllib2
webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com")
#get the result code and print it
print "result code: " + str(webUrl.getcode())
# read the data from the URL and print it
data = webUrl.read()
print data
if __name__ == "__main__":
main()
Ví dụ sử dụng Python 3
#
# read the data from the URL and print it
#
import urllib.request
# open a connection to a URL using urllib
webUrl = urllib.request.urlopen('https://www.youtube.com/user/guru99com')
#get the result code and print it
print ("result code: " + str(webUrl.getcode()))
# read the data from the URL and print it
data = webUrl.read()
print (data)