Truy cập web bằng python

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".

Truy cập web bằng python

  • 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.

Truy cập web bằng python

  • 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)

Quét web là nơi lập trình viên sẽ viết một ứng dụng để tải xuống các trang web và phân tích thông tin. Thông thường khi bạn đang tải dữ liệu, bạn sẽ cần làm cho ứng dụng của bạn điều hướng trang web theo chương trình. Trong bài viết này, chúng tôi sẽ giới thiệu Cách quét web bằng Python trong 5 phút để sử dụng để thu thập dữ liệu trang web nhanh chóng.

1/ Dữ liệu MTA New York

Dữ liệu quay vòng (MTA New York) được tổng hợp mỗi tuần từ tháng 5 năm 2010 đến nay. Vì vậy, trong kho dữ liệu có đến hàng trăm tệp .txt tồn tại trên trang web. Và mỗi ngày bạn cần phải liên kết đến tệp .txt. Thử tưởng tượng, bạn phải tìm kiếm, nhấp vào từng liên kết và lưu vào máy tính của bạn.

Tất cả những khó khăn đó giờ đây đã được giải quyết bằng web - scraping để quyest web bằng python nhanh chóng, dễ dàng.

2/ Những lưu ý quan trọng về việc quét web bằng Python

Đọc qua Điều khoản và Điều kiện của trang web để hiểu cách bạn có thể sử dụng dữ liệu một cách hợp pháp. Hầu hết các trang web cấm bạn sử dụng dữ liệu cho mục đích thương mại.

Truy cập web bằng python

Hãy chắc chắn rằng bạn không tải xuống dữ liệu với tốc độ quá nhanh vì điều này có thể phá vỡ trang web. Bạn cũng có khả năng bị chặn khỏi trang web.

3/ Kiểm tra trang web

Điều đầu tiên mà chúng ta cần làm là tìm ra nơi chúng ta có thể định vị các liên kết đến các tệp mà chúng ta muốn tải xuống bên trong nhiều cấp độ của các thẻ HTML. Nói một cách đơn giản, có rất nhiều mã trên một trang web và chúng tôi muốn tìm những đoạn mã có liên quan có chứa dữ liệu phù hợp. Hãy tham khảo với các thẻ HTML vì đây là điều quan trọng để bạn quét web bằng Python thành công.

Trên trang web, nhấp chuột phải và nhấp chuột vào Insp Inspect. Điều này cho phép bạn xem mã thô phía sau trang web.

Truy cập web bằng python

Khi bạn đã nhấp vào trên Insp Inspect, bạn sẽ thấy bảng điều khiển này bật lên.

Truy cập web bằng python

Nếu đã xác định được vị trí của các liên kết, hãy bắt đầu viết mã!

4/ Mã Python

Chúng ta hãy bắt đầu bằng cách nhập các mã sau: import requests import urllib.request import time from bs4 import BeautifulSoup

Tiếp theo, chúng tôi đặt url cho trang web và truy cập trang web: url = ' http://web.mta.info/developers/turnstile.html' answer = request.get (url)

Nếu truy cập thành công, bạn sẽ thấy đầu ra sau:

Truy cập web bằng python

Cuối cùng nhưng không kém phần quan trọng, chúng ta nên tạm dừng mã của mình trong một giây để chúng ta không spam trang web với các yêu cầu. Điều này giúp chúng tôi tránh bị gắn cờ là người gửi thư rác.

Bây giờ chúng ta đã hiểu cách tải xuống một tệp, hãy thử tải xuống toàn bộ tập hợp dữ liệu với một vòng lặp for. Mã dưới đây chứa toàn bộ bộ mã cho quét web bằng Python dữ liệu quay vòng NY MTA.

Truy cập web bằng python

Trên đây là các thông tin cơ bản và tiến trình quét web bằng Python. Các thông tin này đều vô cùng quan trọng với những lập trình viên. Bởi vậy, hãy dành nhiều thời gian để tìm hiểu và nghiên cứu các vấn đề được chúng tôi đề cập phía trên nhé!

Xem thêm: Làm thế nào để có thể thực tập tại công ty công nghệ hàng đầu

Nguồn tổng hợp

------

JT1 - IT Recruitment Agency Website: https://www.jt1.vn Email: Điện thoại: +8428 6675 6685 Xem thêm các bài viết khác tại: https://www.jt1.vn/blog Theo dõi chúng tôi tại: https://www.facebook.com/jt1asia/