Làm cách nào để sử dụng mô-đun BeautifulSoup trong Python?

Mohit là một Người đam mê Dữ liệu & Công nghệ, có khả năng tiếp xúc tốt với việc giải quyết các vấn đề trong thế giới thực trong nhiều lĩnh vực khác nhau của lĩnh vực CNTT và Học sâu. Ông tin vào việc giải quyết các vấn đề hàng ngày của con người với sự trợ giúp của công nghệ

Chào mừng bạn đến với hướng dẫn quét web với Beautiful Soup 4. Beautiful Soup là một thư viện Python nhằm giúp các lập trình viên đang cố gắng thu thập dữ liệu từ các trang web

Để sử dụng canh đẹp, bạn cần cài đặt.

soup = bs.BeautifulSoup[source,'lxml']
1. Beautiful Soup cũng dựa vào trình phân tích cú pháp, mặc định là
soup = bs.BeautifulSoup[source,'lxml']
2. Bạn có thể đã có nó, nhưng bạn nên kiểm tra [mở IDLE và cố gắng nhập lxml]. Nếu không, làm.
soup = bs.BeautifulSoup[source,'lxml']
3 hoặc
soup = bs.BeautifulSoup[source,'lxml']
0

Để bắt đầu, chúng ta cần HTML. Tôi đã tạo một trang ví dụ để chúng ta làm việc với

Để bắt đầu, chúng ta cần nhập Beautiful Soup và urllib, đồng thời lấy mã nguồn

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]

Sau đó, chúng tôi tạo ra "súp. "Đây là một món súp tuyệt đẹp

soup = bs.BeautifulSoup[source,'lxml']

Nếu bạn làm

soup = bs.BeautifulSoup[source,'lxml']
1 và
soup = bs.BeautifulSoup[source,'lxml']
2, nó trông giống nhau, nhưng nguồn chỉ đơn giản là dữ liệu phản hồi và súp là một đối tượng mà chúng ta thực sự có thể tương tác với, theo thẻ, bây giờ, như vậy

# title of the page
print[soup.title]

# get attributes:
print[soup.title.name]

# get values:
print[soup.title.string]

# beginning navigation:
print[soup.title.parent.name]

# getting specific values:
print[soup.p]

Tìm các thẻ đoạn văn

soup = bs.BeautifulSoup[source,'lxml']
3 là một nhiệm vụ khá phổ biến. Trong trường hợp trên, chúng tôi chỉ tìm cái đầu tiên. Điều gì sẽ xảy ra nếu chúng ta muốn tìm tất cả chúng?

print[soup.find_all['p']]

Chúng ta cũng có thể lặp qua chúng

________số 8

Sự khác biệt giữa chuỗi và văn bản là chuỗi tạo ra đối tượng NavigableString và văn bản chỉ là văn bản unicode điển hình. Lưu ý rằng, nếu có các thẻ con trong mục đoạn văn mà chúng tôi đang cố gắng sử dụng

soup = bs.BeautifulSoup[source,'lxml']
4 trên đó, chúng tôi sẽ trả về
soup = bs.BeautifulSoup[source,'lxml']
5

Một nhiệm vụ phổ biến khác là lấy liên kết. Ví dụ

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
1

Trong trường hợp này, nếu chúng tôi chỉ lấy

soup = bs.BeautifulSoup[source,'lxml']
6 từ thẻ, bạn sẽ nhận được văn bản liên kết, nhưng chúng tôi thực sự muốn chính liên kết đó. Đó là lý do tại sao chúng tôi đang sử dụng
soup = bs.BeautifulSoup[source,'lxml']
7 để lấy URL thực

Cuối cùng, bạn có thể chỉ muốn lấy văn bản. Bạn có thể sử dụng

soup = bs.BeautifulSoup[source,'lxml']
8 trên đối tượng Món súp đẹp mắt, bao gồm cả món súp đầy đủ

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
5

Điều này kết thúc phần giới thiệu về Beautiful Soup. Trong hướng dẫn tiếp theo, chúng ta sẽ đề cập đến việc điều hướng các thành phần của trang để có được những gì bạn muốn một cách cụ thể hơn

Hôm nay chúng ta sẽ thảo luận về cách sử dụng thư viện Beautiful Soup để trích xuất nội dung từ trang HTML. Sau khi trích xuất, chúng tôi sẽ chuyển đổi nó thành danh sách Python hoặc từ điển bằng Beautiful Soup

Thêm tài nguyên Python

  • IDE là gì?
  • bảng ăn gian. Trăn 3. 7 cho người mới bắt đầu
  • Khung GUI Python hàng đầu
  • Tải xuống. 7 thư viện PyPI thiết yếu
  • Nhà phát triển mũ đỏ
  • Nội dung Python mới nhất

Quét web là gì và tại sao tôi cần nó?

Câu trả lời đơn giản là đây. Không phải mọi trang web đều có API để tìm nạp nội dung. Bạn có thể muốn nhận công thức nấu ăn từ trang web nấu ăn yêu thích của mình hoặc ảnh từ blog du lịch. Nếu không có API, trích xuất HTML hoặc thu thập dữ liệu, có thể là cách duy nhất để lấy nội dung đó. Tôi sẽ chỉ cho bạn cách làm điều này trong Python

Không phải tất cả các trang web đều vui lòng cạo và một số có thể cấm nó một cách rõ ràng. Kiểm tra với chủ sở hữu trang web nếu họ đồng ý với việc cạo

Làm cách nào để cạo một trang web bằng Python?

Để quét web hoạt động trong Python, chúng tôi sẽ thực hiện ba bước cơ bản

  1. Trích xuất nội dung HTML bằng thư viện
    soup = bs.BeautifulSoup[source,'lxml']
    4
  2. Phân tích cấu trúc HTML và xác định các thẻ có nội dung của chúng tôi
  3. Trích xuất các thẻ bằng Beautiful Soup và đưa dữ liệu vào danh sách Python

Cài đặt các thư viện

Trước tiên hãy cài đặt các thư viện chúng ta cần. Thư viện

soup = bs.BeautifulSoup[source,'lxml']
4 lấy nội dung HTML từ một trang web. Beautiful Soup phân tích cú pháp HTML và chuyển đổi nó thành các đối tượng Python. Để cài đặt những thứ này cho Python 3, hãy chạy

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
6

Trích xuất HTML

Đối với ví dụ này, tôi sẽ chọn cạo phần Công nghệ của trang web này. Nếu bạn vào trang đó, bạn sẽ thấy một danh sách các bài viết có tiêu đề, đoạn trích và ngày xuất bản. Mục tiêu của chúng tôi là tạo một danh sách các bài báo có thông tin đó

URL đầy đủ của trang Công nghệ là

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
7

Chúng tôi có thể lấy nội dung HTML từ trang này bằng cách sử dụng

soup = bs.BeautifulSoup[source,'lxml']
4

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
8

Biến

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
70 sẽ chứa mã nguồn HTML của trang

Trích xuất nội dung từ HTML

Để trích xuất dữ liệu của chúng tôi từ HTML nhận được trong

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
70, chúng tôi sẽ cần xác định thẻ nào có những gì chúng tôi cần

Nếu bạn lướt qua HTML, bạn sẽ thấy phần này ở gần trên cùng

soup = bs.BeautifulSoup[source,'lxml']
1

Đây là phần lặp lại trên toàn trang cho mọi bài viết. Chúng ta có thể thấy rằng

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
72 có tiêu đề bài báo,
import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
73 có đoạn trích và
import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
74 có ngày xuất bản

Hãy trích xuất chúng bằng cách sử dụng Beautiful Soup

soup = bs.BeautifulSoup[source,'lxml']
5

Đoạn mã trên trích xuất các mạo từ và đặt chúng vào biến

import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
75. Tôi đang sử dụng
import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
76 để in đầu ra đẹp mắt, nhưng bạn có thể bỏ qua nó trong mã của mình. Lưu mã ở trên vào một tệp có tên là
import bs4 as bs
import urllib.request

source = urllib.request.urlopen['//pythonprogramming.net/parsememcparseface/'].read[]
77, sau đó chạy mã đó bằng cách sử dụng

soup = bs.BeautifulSoup[source,'lxml']
9

Nếu mọi thứ suôn sẻ, bạn sẽ thấy cái này

soup = bs.BeautifulSoup[source,'lxml']
0

Và đó là tất cả những gì nó cần. Trong 22 dòng mã, chúng tôi đã tạo một trình quét web bằng Python. Bạn có thể tìm mã nguồn trong repo mẫu của tôi

Phần kết luận

Với nội dung trang web trong danh sách Python, giờ đây chúng ta có thể làm những thứ thú vị với nó. Chúng tôi có thể trả lại nó dưới dạng JSON cho một ứng dụng khác hoặc chuyển đổi nó thành HTML với kiểu dáng tùy chỉnh. Vui lòng sao chép-dán đoạn mã trên và thử nghiệm với trang web yêu thích của bạn

Hãy vui vẻ và tiếp tục viết mã

Bài viết này ban đầu được xuất bản trên blog cá nhân của tác giả và đã được điều chỉnh với sự cho phép

Đọc gì tiếp theo

3 Trình quét và trình thu thập dữ liệu web Python

Hãy xem các công cụ Python tuyệt vời này để thu thập dữ liệu và tìm kiếm trang web cũng như phân tích dữ liệu bạn cần

Jason B

[Cựu Sinh Viên Mũ Đỏ]

28 Tháng Chín, 2017

Hướng dẫn dành cho người mới bắt đầu quét web bằng Python

Nhận một số trải nghiệm thực tế với các công cụ Python cần thiết để quét các trang web HTML hoàn chỉnh

Julia Piaskowski

22 Tháng Năm, 2020

thẻ

phát triển web

con trăn

Ayush Sharma

Tôi là một nhà văn và Kiến trúc sư giải pháp AWS. Tôi làm việc với các công ty khởi nghiệp và doanh nghiệp về Kỹ thuật phần mềm, DevOps, SRE và Kiến trúc đám mây. Tôi viết về trải nghiệm của mình trên https. //ayushsharma. Trong

Mô-đun BeautifulSoup trong Python là gì?

Beautiful Soup là thư viện Python để lấy dữ liệu ra khỏi tệp HTML và XML . Nó hoạt động với trình phân tích cú pháp yêu thích của bạn để cung cấp các cách điều hướng, tìm kiếm và sửa đổi cây phân tích thành ngữ. Nó thường tiết kiệm cho lập trình viên hàng giờ hoặc ngày làm việc.

Làm cách nào để cài đặt gói BeautifulSoup trong Python?

Cài đặt Beautiful Soup bằng thiết lập. p .
Giải nén nó vào một thư mục [ví dụ: BeautifulSoup ]
Mở dấu nhắc dòng lệnh và điều hướng đến thư mục mà bạn đã giải nén thư mục như sau. cd Thiết lập trăn BeautifulSoup. cài đặt py
thiết lập trăn. dòng cài đặt py sẽ cài đặt Beautiful Soup trong hệ thống của chúng tôi

BeautifulSoup hoạt động như thế nào với Python?

Beautiful Soup cung cấp các phương pháp đơn giản để điều hướng, tìm kiếm và sửa đổi cây phân tích cú pháp trong các tệp HTML, XML. Nó chuyển đổi một tài liệu HTML phức tạp thành một cây các đối tượng Python . Nó cũng tự động chuyển đổi tài liệu sang Unicode, vì vậy bạn không cần phải suy nghĩ về mã hóa.

Tại sao thư viện BeautifulSoup được sử dụng trong Python?

Beautiful Soup là một gói Python để phân tích cú pháp các tài liệu HTML và XML [bao gồm cả việc đánh dấu không đúng định dạng, tôi. e. các thẻ không đóng, do đó được đặt tên theo súp thẻ]. Nó tạo ra một cây phân tích cú pháp cho các trang được phân tích cú pháp có thể được sử dụng để trích xuất dữ liệu từ HTML, rất hữu ích cho việc quét web.

Chủ Đề