Biến trang web thành dữ liệu với BeautifulSoup: lấy các siêu liên kết
Trong bài này, bạn sẽ tìm cách trích xuất các URL của siêu liên kết từ trang web của BDFL. Trong quá trình đó, bạn sẽ làm quen thân với phương thức find_all() của soup.
Bài tập này là một phần của khóa học
Nhập dữ liệu nâng cao trong Python
Hướng dẫn bài tập
- Dùng phương thức
find_all()để tìm tất cả siêu liên kết trongsoup, nhớ rằng siêu liên kết được xác định bởi thẻ HTML<a>nhưng được truyền chofind_all()mà không có dấu ngoặc nhọn; lưu kết quả vào biếna_tags. - Biến
a_tagslà một tập kết quả: nhiệm vụ của bạn là duyệt qua nó bằng vòng lặpforvà in ra các URL thực của những siêu liên kết; để làm điều này, với mỗi phần tửlinktronga_tags, bạn cầnprint()link.get('href').
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import packages
import requests
from bs4 import BeautifulSoup
# Specify url
url = 'https://www.python.org/~guido/'
# Package the request, send the request and catch the response: r
r = requests.get(url)
# Extracts the response as html: html_doc
html_doc = r.text
# create a BeautifulSoup object from the HTML: soup
soup = BeautifulSoup(html_doc)
# Print the title of Guido's webpage
print(soup.title)
# Find all 'a' tags (which define hyperlinks): a_tags
# Print the URLs to the shell
for ____ in ____:
____