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.  

Các thẻ neo, hoặc các thẻ

import requests
from bs4 import BeautifulSoup
1 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 BeautifulSoup
2

Tham khảo hình bên dưới để hiểu rõ hơn

Trích xuất href từ html Python

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 BeautifulSoup
2 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 BeautifulSoup
2 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 BeautifulSoup
2 trên trang web. Sau đó lấy giá trị của thuộc tính
import requests
from bs4 import BeautifulSoup
2

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 BeautifulSoup
2 trên trang web là

  1. import requests
    from bs4 import BeautifulSoup
    8
  2. lớp
    import requests
    from bs4 import BeautifulSoup
    9

Sau khi tìm thấy tất cả các mục nhập

import requests
from bs4 import BeautifulSoup
2, 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à BeautifulSoup

Trong 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 web

Các mục nhập

import requests
from bs4 import BeautifulSoup
2 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 BeautifulSoup
1 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 BeautifulSoup
8 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 BeautifulSoup
1 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 SoupStrainer

Chúng ta cũng có thể sử dụng lớp

import requests
from bs4 import BeautifulSoup
9. Để 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 BeautifulSoup
9 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 href

Khi 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 BeautifulSoup
2

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 BeautifulSoup
2, chỉ cần nói

pip install bs4
0

Bây giờ, hãy tinh chỉnh chương trình trên để in các giá trị

import requests
from bs4 import BeautifulSoup
2

pip install bs4
1

đầu ra

pip install bs4
2

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 Policy
7 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 Policy
8 như hình bên dưới

pip install bs4
3

đầu ra

pip install bs4
2

Ví dụ thời gian thực

Bâ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 web

Hãy quét trang chính Wikipedia để tìm tất cả các mục

import requests
from bs4 import BeautifulSoup
2

pip install bs4
5

đầu ra

pip install bs4
6

Như bạn có thể thấy, tất cả các mục nhập

import requests
from bs4 import BeautifulSoup
2 đượ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ện

Giả 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 SoupStrainer
1 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 SoupStrainer
2) để khớp với các URL bắt đầu bằng
from bs4 import SoupStrainer
1 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 SoupStrainer
4' trong miền.  

pip install bs4
7

đầu ra

pip install bs4
8

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 nhau

Hãy xem xét một tập tin như hình dưới đây

Trích xuất href từ html Python

Giả sử chúng ta cần tìm nạp URL từ

from bs4 import SoupStrainer
5 và với
from bs4 import SoupStrainer
6. 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 bs4
9

đầu ra

import requests
from bs4 import BeautifulSoup
0

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 BeautifulSoup
2 trong thẻ HTML
import requests
from bs4 import BeautifulSoup
1. 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ẻ