Trích xuất href từ html Python
Khi chúng tôi duyệt qua một trang web, chúng tôi thấy một số văn bản màu xanh có gạch dưới bên dưới. Chúng được gọi là anchor text. Đó là bởi vì khi bạn nhấp vào những văn bản này, chúng sẽ đưa bạn đến một trang web mới. Show
Các thẻ neo, hoặc các thẻ import requests from bs4 import BeautifulSoup1 của HTML, được sử dụng để tạo văn bản neo và URL của trang web sẽ được mở được chỉ định trong thuộc tính import requests from bs4 import BeautifulSoup2 Tham khảo hình bên dưới để hiểu rõ hơn Trong hầu hết tất cả các dự án quét web, tìm nạp các URL từ thuộc tính import requests from bs4 import BeautifulSoup2 là một nhiệm vụ phổ biến Trong bài viết hôm nay, hãy cùng tìm hiểu các cách khác nhau để tìm nạp URL từ thuộc tính import requests from bs4 import BeautifulSoup2 bằng Beautiful Soup Để tìm nạp URL, trước tiên chúng tôi phải tìm tất cả các thẻ liên kết hoặc import requests from bs4 import BeautifulSoup2 trên trang web. Sau đó lấy giá trị của thuộc tính import requests from bs4 import BeautifulSoup2 Hai cách để tìm tất cả các thẻ neo hoặc các mục nhập import requests from bs4 import BeautifulSoup2 trên trang web là
Sau khi tìm thấy tất cả các mục nhập import requests from bs4 import BeautifulSoup2, chúng tôi tìm nạp các giá trị bằng một trong các phương pháp sau
Điều kiện tiên quyết. Cài đặt và Nhập các yêu cầu và BeautifulSoupTrong suốt bài viết, chúng tôi sẽ sử dụng mô-đun import requests from bs4 import BeautifulSoup url = "https://www.wikipedia.org/" # retrieve the data from URL response = requests.get(url) # parse the contents of the webpage soup = BeautifulSoup(response.text, 'html.parser') # filter all the tags from the parsed document for tag in soup.find_all('a'): print(tag)3 để truy cập trang web và import requests from bs4 import BeautifulSoup url = "https://www.wikipedia.org/" # retrieve the data from URL response = requests.get(url) # parse the contents of the webpage soup = BeautifulSoup(response.text, 'html.parser') # filter all the tags from the parsed document for tag in soup.find_all('a'): print(tag)4 để phân tích cú pháp và lấy dữ liệu từ tệp HTML Để cài đặt các yêu cầu trên hệ thống của bạn, hãy mở cửa sổ đầu cuối của bạn và nhập lệnh bên dưới pip install requests Thêm thông tin tại đây
Để cài đặt Beautiful Soup trong hệ thống của bạn, hãy mở cửa sổ đầu cuối của bạn và nhập lệnh bên dưới pip install bs4 Để cài đặt Beautiful Soup, hãy mở cửa sổ terminal và nhập lệnh bên dưới import requests from bs4 import BeautifulSoup Thêm thông tin tại đây
Tìm các mục nhập href từ một trang webCác mục nhập import requests from bs4 import BeautifulSoup2 luôn xuất hiện trong thẻ liên kết (thẻ ____0_______1). Vì vậy, nhiệm vụ đầu tiên là tìm tất cả các thẻ import requests from bs4 import BeautifulSoup1 trong trang web Dùng súp. find_all()Soup đại diện cho tệp được phân tích cú pháp. Phương thức import requests from bs4 import BeautifulSoup8 trả về tất cả các thẻ và chuỗi phù hợp với tiêu chí Giả sử chúng ta muốn tìm tất cả các thẻ import requests from bs4 import BeautifulSoup1 trong một tài liệu. Chúng ta có thể làm như hình dưới đây import requests from bs4 import BeautifulSoup url = "https://www.wikipedia.org/" # retrieve the data from URL response = requests.get(url) # parse the contents of the webpage soup = BeautifulSoup(response.text, 'html.parser') # filter all the tags from the parsed document for tag in soup.find_all('a'): print(tag) đầu ra English 6 383 000+ articles . . . Creative Commons Attribution-ShareAlike License Terms of Use Privacy Policy Sử dụng lớp SoupStrainerChúng ta cũng có thể sử dụng lớp import requests from bs4 import BeautifulSoup9. Để sử dụng nó, trước tiên chúng ta phải nhập nó vào chương trình bằng lệnh bên dưới from bs4 import SoupStrainer Bây giờ, bạn có thể chọn chỉ phân tích cú pháp các thuộc tính bắt buộc bằng cách sử dụng lớp import requests from bs4 import BeautifulSoup9 như hình bên dưới import requests from bs4 import BeautifulSoup, SoupStrainer url = "https://www.wikipedia.org/" # retrieve the data from URL response = requests.get(url) # parse-only the tags from the webpage soup = BeautifulSoup(response.text, 'html.parser', parse_only=SoupStrainer("a")) for tag in soup: print(tag) đầu ra English 6 383 000+ articles . . . Creative Commons Attribution-ShareAlike License Terms of Use Privacy Policy Lấy giá trị của thuộc tính hrefKhi chúng tôi đã tìm nạp các thẻ được yêu cầu, chúng tôi có thể truy xuất giá trị của thuộc tính import requests from bs4 import BeautifulSoup2 Tất cả các thuộc tính và giá trị của chúng được lưu trữ dưới dạng từ điển. Tham khảo bên dưới sample_string="""Elsie""" soup= BeautifulSoup(sample_string,'html.parser') atag=soup.find_all('a')[0] print(atag) print(atag.attrs) đầu ra Elsie {'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'} Sử dụng thẻ [‘href’]Như đã thấy ở đầu ra, các thuộc tính và giá trị của chúng được lưu trữ dưới dạng từ điển Để truy cập giá trị của thuộc tính import requests from bs4 import BeautifulSoup2, chỉ cần nói pip install bs40 Bây giờ, hãy tinh chỉnh chương trình trên để in các giá trị import requests from bs4 import BeautifulSoup2 pip install bs41 đầu ra pip install bs42 Sử dụng thẻ. nhận ('href')Ngoài ra, chúng ta cũng có thể sử dụng phương thức English 6 383 000+ articles . . . Creative Commons Attribution-ShareAlike License Terms of Use Privacy Policy7 trên đối tượng từ điển để lấy giá trị của English 6 383 000+ articles . . . Creative Commons Attribution-ShareAlike License Terms of Use Privacy Policy8 như hình bên dưới pip install bs43 đầu ra pip install bs42 Ví dụ thời gian thựcBây giờ chúng ta đã biết cách tìm nạp giá trị của thuộc tính href, hãy xem xét một số trường hợp sử dụng trong thời gian thực ví dụ 1. Tìm nạp tất cả các URL từ trang webHãy quét trang chính Wikipedia để tìm tất cả các mục import requests from bs4 import BeautifulSoup2 pip install bs45 đầu ra pip install bs46 Như bạn có thể thấy, tất cả các mục nhập import requests from bs4 import BeautifulSoup2 được in ví dụ 2. Tìm nạp tất cả các URL dựa trên một số điều kiệnGiả sử chúng ta chỉ cần tìm các liên kết ngoài. Từ đầu ra, chúng tôi có thể nhận thấy rằng hầu hết các liên kết trong nước không có from bs4 import SoupStrainer1 trong liên kết. Như vậy, chúng ta có thể sử dụng biểu thức chính quy ( from bs4 import SoupStrainer2) để khớp với các URL bắt đầu bằng from bs4 import SoupStrainer1 như hình bên dưới Ngoài ra, hãy kiểm tra để đảm bảo không có kết quả nào với ' from bs4 import SoupStrainer4' trong miền. pip install bs47 đầu ra pip install bs48 ví dụ 3. Tìm nạp các URL dựa trên giá trị của các thuộc tính khác nhauHãy xem xét một tập tin như hình dưới đây Giả sử chúng ta cần tìm nạp URL từ from bs4 import SoupStrainer5 và với from bs4 import SoupStrainer6. Chúng ta có thể làm điều đó bằng cách chỉ định điều kiện như hình dưới đây pip install bs49 đầu ra import requests from bs4 import BeautifulSoup0 Phần kết luậnĐiều đó đưa chúng ta đến phần cuối của hướng dẫn này. Trong hướng dẫn ngắn này, chúng ta đã học cách lấy giá trị của thuộc tính import requests from bs4 import BeautifulSoup2 trong thẻ HTML import requests from bs4 import BeautifulSoup1. Chúng tôi hy vọng bài viết này đã được thông tin. Cảm ơn vì đã đọc Làm cách nào để trích xuất liên kết từ HTML bằng Python?Các bước cần thực hiện. get() bằng cách chuyển URL tới nó. Tạo đối tượng Parse Tree i. e. soup bằng phương thức BeautifulSoup(), truyền cho nó tài liệu HTML được trích xuất ở trên và trình phân tích cú pháp HTML tích hợp sẵn của Python. Sử dụng thẻ a để trích xuất các liên kết từ đối tượng BeautifulSoup.
Làm cách nào tôi có thể nhận được các liên kết href từ HTML bằng Python?Bạn có thể sử dụng mô-đun HTMLParser. Ghi chú. Mô-đun HTMLParser đã được đổi tên thành html. trình phân tích cú pháp trong Python 3. 0. . BeautifulSoup không thể tự động đóng thẻ meta chẳng hạn. . một vấn đề khác với bsoup là định dạng của liên kết sẽ thay đổi so với ban đầu. . Không phải tất cả các liên kết đều chứa http Làm cách nào để lấy dữ liệu URL trong Python?Đang tìm nạp URL . nhập urllib. yêu cầu với urllib. lời yêu cầu. urlopen('http. //trăn. org/') làm phản hồi. html = phản hồi. . nhập Shutil nhập tempfile nhập urllib. yêu cầu với urllib. lời yêu cầu. urlopen('http. //trăn. org/') làm phản hồi. với tệp tạm thời. . nhập urllib. yêu cầu req = urllib. lời yêu cầu Làm cách nào để lấy giá trị href trong Selenium Python?Chúng tôi có thể tìm nạp các liên kết href trong một trang trong Selenium bằng cách sử dụng phương thức find_elements() . Tất cả các liên kết trong trang web được thiết kế trong một tài liệu html sao cho chúng được đặt trong thẻ neo. Để tìm nạp tất cả các phần tử có tên thẻ |