Computer >> Máy Tính >  >> Lập trình >> Python

Tìm nạp văn bản từ Infobox của Wikipedia bằng Python

Trong bài viết này, chúng ta sẽ trích xuất văn bản từ Infobox của Wikipedia bằng cách sử dụng BeatifulSoup và các yêu cầu bằng Python. Chúng tôi có thể làm điều đó trong 10 phút. Nó đơn giản.

Chúng ta cần cài đặt bs4 và các yêu cầu. Thực hiện các lệnh dưới đây để cài đặt.

pip install bs4
pip install requests

Làm theo các bước dưới đây để viết mã tìm nạp văn bản mà chúng tôi muốn từ hộp thông tin.

  • Nhập mô-đun bs4 và yêu cầu.
  • Gửi một yêu cầu HTTP đến trang mà bạn muốn tìm nạp dữ liệu bằng cách sử dụng phương thức request.get ().
  • Phân tích cú pháp văn bản phản hồi bằng lớp bs4.BeautifulSoup và lưu trữ nó trong một biến.
  • Truy cập trang Wikipedia và kiểm tra phần tử bạn muốn.
  • Tìm phần tử bằng phương pháp phù hợp do bs4 cung cấp.

Hãy xem đoạn mã ví dụ bên dưới.

Ví dụ

# importing the module
import requests
import bs4

# URL
URL = "https://en.wikipedia.org/wiki/India"

# sending the request
response = requests.get(URL)

# parsing the response
soup = bs4.BeautifulSoup(response.text, 'html')

# Now, we have paresed HTML with us. I want to get the _motto_ from the wikipedia page.
# Elements structure
# table - class="infobox"
# 3rd tr to get motto

# getting infobox
infobox = soup.find('table', {'class': 'infobox'})

# getting 3rd row element tr
third_tr = infobox.find_all('tr')[2]

# from third_tr we have to find first 'a' element and 'div' element to get required data
first_a = third_tr.div.find('a')
div = third_tr.div.div

# motto
motto = f"{first_a.text} {div.text[:len(div.text) - 3]}"

# printing the motto
print(motto)

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

Đầu ra

Satyameva Jayate "Truth Alone Triumphs"

Kết luận

Bạn có thể lấy bất kỳ dữ liệu nào bạn muốn bằng cách kiểm tra và tìm phần tử trong trang Wikipedia. Nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn, hãy đề cập đến chúng trong phần bình luận.