Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

Web Scraping z BeautifulSoup w Python

Dzięki połączeniu Beautiful Soup i IronPDF programiści Pythona mogą teraz tworzyć dynamiczne pliki PDF i usprawnić proces pobierania danych z sieci. Programiści mogą łatwo i precyzyjnie wyodrębniać wszystkie dane ze źródeł internetowych za pomocą Beautiful Soup, znanego ze swojej zdolności do analizowania plików HTML i XML. Z kolei IronPDF to potężne narzędzie o płynnej integracji i solidnych możliwościach, które można wykorzystać do generowania dokumentów PDF programowo.

Połączenie tych dwóch potężnych narzędzi pozwala programistom zautomatyzować procesy, takie jak tworzenie faktur, archiwizacja treści i generowanie raportów, z niezrównaną wydajnością. W tym wstępnym omówieniu zagłębimy się w niuanse biblioteki Beautiful Soup dla języka Python oraz IronPDF, podkreślając zarówno ich indywidualne zalety, jak i rewolucyjny potencjał wynikający z ich połączenia. Zapraszamy do zapoznania się z możliwościami, jakie czekają na programistów Pythona dzięki pełnemu wykorzystaniu narzędzi do scrapingu stron internetowych i tworzenia plików PDF.

Beautiful Soup Python (Jak to działa dla programistów): Rysunek 1 – Strona główna Beautiful Soup

Analiza HTML/XML

Beautiful Soup bardzo dobrze radzi sobie z analizowaniem tagów HTML i dokumentów XML, przekształcając je w drzewa analizy, które można przeglądać i modyfikować. Delikatnie dostosowuje nieprawidłowe elementy HTML, dzięki czemu programiści mogą radzić sobie z niekompletnymi danymi bez obaw o problemy z parsowaniem.

Wyszukiwanie konkretnych elementów na stronie HTML

Przyjazne dla użytkownika techniki nawigacji Beautiful Soup ułatwiają wyszukiwanie konkretnych elementów na stronie HTML. Korzystając z technik takich jak search, find_all i select, programiści mogą poruszać się po strukturze drzewa i precyzyjnie wybierać elementy na podstawie tagów, atrybutów lub selektorów CSS.

Dostęp do charakterystyki i zawartości tagów

Beautiful Soup zapewnia proste metody pobierania cech i zawartości elementu po zlokalizowaniu go w drzewie analizy. Programiści mogą uzyskać dowolny atrybut niestandardowy powiązany z tagiem, a także atrybut href oraz inne, takie jak class i id. W celu dalszego przetwarzania mogą również uzyskać dostęp do wewnętrznego elementu HTML lub treści tekstowej elementu.

Wyszukiwanie i filtrowanie

Beautiful Soup posiada rozbudowane funkcje wyszukiwania i filtrowania, które pozwalają programistom lokalizować komponenty zgodnie z różnymi standardami. Mogą również wykorzystywać wyrażenia regularne do bardziej skomplikowanych wzorców dopasowania. Mogą wyszukiwać konkretne tagi i filtrować elementy na podstawie cech lub klas CSS. Można to jeszcze bardziej usprawnić za pomocą biblioteki requests, która pobiera strony internetowe do analizy. Ta elastyczność ułatwia wyodrębnianie określonych danych z dokumentów HTML/XML.

Poruszanie się po drzewie analizy

W ramach struktury dokumentu programiści mogą poruszać się w górę, w dół i na boki w drzewie analizy. Dostęp do elementów nadrzędnych, równorzędnych i podrzędnych jest możliwy dzięki Beautiful Soup, co ułatwia szczegółowe przeglądanie hierarchii dokumentu.

Pobieranie danych

Podstawową funkcją Beautiful Soup jest możliwość wyodrębniania danych z tekstów HTML i XML. Programiści mogą z łatwością wyodrębniać tekst, linki, zdjęcia, tabele i inne elementy treści ze stron internetowych. Z skomplikowanych dokumentów mogą wyodrębnić określone punkty danych lub całe fragmenty treści poprzez integrację algorytmów nawigacji, filtrowania i przeszukiwania.

Dbanie o kodowanie i encje

Beautiful Soup automatycznie zajmuje się kodowaniem znaków i elementami HTML, zapewniając dokładne przetwarzanie danych tekstowych pomimo problemów z kodowaniem lub znaków specjalnych. Ta funkcja ułatwia pracę z materiałami internetowymi z różnych źródeł, eliminując konieczność dekodowania encji lub ręcznej konwersji kodowania.

Modyfikacja drzewa analizy

Beautiful Soup nie tylko ułatwia ekstrakcję, ale także pozwala programistom na dynamiczną modyfikację drzewa analizy. W razie potrzeby tłumacze mogą zmienić strukturę dokumentu, dodawać, usuwać lub modyfikować tagi i atrybuty, a także dodawać nowe elementy. Ta funkcja umożliwia wykonywanie operacji w obrębie dokumentu, takich jak czyszczenie danych, uzupełnianie treści i zmiany strukturalne.

Utwórz i skonfiguruj Beautiful Soup dla języka Python

Wybór parsera

Aby przetwarzać dokumenty HTML lub XML, Beautiful Soup potrzebuje parsera. Domyślnie korzysta z wbudowanej funkcji html.parser języka Python. Aby uzyskać większą wydajność lub lepszą kompatybilność z konkretnymi dokumentami, można określić różne parsery, takie jak lxml lub html5lib. W trakcie tworzenia obiektu BeautifulSoup można podać parserowi:

from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
PYTHON

Konfiguracja opcji parsowania

Beautiful Soup oferuje kilka opcji zmiany sposobu działania parsowania. Można na przykład wyłączyć funkcje przekształcające encje HTML na znaki Unicode lub włączyć opcję dokładniejszego parsowania. Podczas tworzenia obiektu BeautifulSoup ustawienia te są przekazywane jako argumenty. Oto przykład wyłączenia konwersji encji:

from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
PYTHON

Wykrywanie kodowania

Beautiful Soup automatycznie próbuje określić kodowanie dokumentu. Czasami jednak, zwłaszcza gdy treść jest niejasna lub występują problemy z kodowaniem, może być konieczne wyraźne określenie kodowania. Podczas tworzenia obiektu BeautifulSoup można zdefiniować kodowanie:

from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
PYTHON

Formatowanie wyników

Domyślnie Beautiful Soup dodaje do analizowanej treści znaki końca linii i wcięcia, aby ułatwić jej czytanie. Z drugiej strony, podczas tworzenia obiektu BeautifulSoup można podać opcję formatter, aby zmienić formatowanie wyjściowe. Przykładowo, aby wyłączyć formatowanie:

from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
PYTHON

NavigableString i Tag Podklasy

Można zmienić klasy używane przez Beautiful Soup dla obiektów NavigableString i Tag. Może to pomóc w rozszerzeniu możliwości Beautiful Soup lub zintegrowaniu go z innymi bibliotekami. Podczas tworzenia obiektu BeautifulSoup można przekazać jako parametry podklasy NavigableString i Tag.

Pierwsze kroki

Czym jest IronPDF?

IronPDF to potężna biblioteka .NET służąca do programowego tworzenia, edycji i modyfikacji dokumentów PDF w językach C#, VB.NET i innych językach platformy .NET. Jest to popularna opcja dla wielu aplikacji, ponieważ oferuje programistom szeroki zestaw funkcji do dynamicznego tworzenia wysokiej jakości plików PDF.

Beautiful Soup Python (jak to działa dla programistów): Rysunek 2 – Strona główna IronPDF

Funkcje IronPDF

  • Generowanie plików PDF: Dzięki IronPDF programiści mogą przekształcać tagi HTML, tekst, obrazy i inne formaty plików w pliki PDF lub tworzyć dokumenty PDF od podstaw. Ta funkcja jest bardzo pomocna przy dynamicznym tworzeniu raportów, faktur, paragonów i innych dokumentów.
  • Konwersja HTML do PDF: IronPDF pozwala programistom na łatwą konwersję struktury HTML — w tym stylów JavaScript i CSS — do dokumentów PDF. Umożliwia to tworzenie plików PDF na podstawie szablonów HTML, stron internetowych oraz materiałów tworzonych dynamicznie.
  • Edycja i modyfikacja dokumentów PDF: IronPDF oferuje szeroki zakres funkcji edycji i modyfikacji istniejących dokumentów PDF. Aby dostosować pliki PDF do swoich potrzeb, programiści mogą łączyć kilka plików PDF, dzielić je na odrębne dokumenty, wyodrębniać strony oraz dodawać między innymi zakładki, adnotacje i znaki wodne.

Instalacja

Najpierw należy zainstalować IronPDF i Beautiful Soup. W tym celu można użyć Pip, menedżera pakietów dla języka Python.

pip install beautifulsoup4 
pip install ironpdf
pip install beautifulsoup4 
pip install ironpdf
SHELL

Importuj biblioteki

Następnie zaimportuj skrypt w języku Python, korzystając z wymaganych bibliotek.

from bs4 import BeautifulSoup
from ironpdf import IronPdf
from bs4 import BeautifulSoup
from ironpdf import IronPdf
PYTHON

Pobieranie danych z sieci za pomocą Beautiful Soup

Wykorzystaj Beautiful Soup do wyodrębnienia informacji ze strony internetowej. Wyobraź sobie, że chcemy pobrać tytuł i treść artykułu ze strony internetowej.

# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
PYTHON

Generowanie plików PDF za pomocą IronPDF

Wykorzystajmy teraz IronPDF do utworzenia dokumentu PDF z wyodrębnionymi danymi.

from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
PYTHON

Ten skrypt pobierze tytuł i tekst przykładowego artykułu, zeskrobuje go i zapisze dane HTML jako plik PDF o nazwie sample_article.pdf, który zostanie zapisany w bieżącym katalogu.

Beautiful Soup Python (jak to działa dla programistów): Rysunek 3 – Przykładowy wynik działania powyższego kodu

Wnioski

Podsumowując, programiści pragnący zoptymalizować proces pozyskiwania danych i tworzenia dokumentów znajdą w połączeniu Beautiful Soup Python i IronPDF potężne narzędzie. Solidne funkcje IronPDF umożliwiają dynamiczne generowanie profesjonalnych dokumentów PDF, a łatwe w użyciu funkcje parsowania Beautiful Soup pozwalają na wyodrębnianie przydatnych danych ze źródeł internetowych.

Połączenie tych dwóch bibliotek zapewnia programistom zasoby niezbędne do automatyzacji różnych operacji, w tym tworzenia faktur, raportów i scrapingu stron internetowych. Współpraca między Beautiful Soup a IronPDF umożliwia programistom szybkie i skuteczne osiąganie celów, niezależnie od tego, czy obejmują one wyodrębnianie danych ze skomplikowanego kodu HTML, czy natychmiastowe tworzenie spersonalizowanych publikacji w formacie PDF.

IronPDF jest w rozsądnej cenie, gdy kupuje się go w pakiecie, i ma dożywotnią licencję. Ponieważ pakiet kosztuje tylko $799, co stanowi jednorazową opłatę za wiele systemów, zapewnia doskonały stosunek jakości do ceny. Posiadacze licencji mają dostęp do pomocy technicznej online przez całą dobę. Aby uzyskać dodatkowe informacje na temat opłat, odwiedź stronę internetową. Aby dowiedzieć się więcej o ofercie Iron Software, przejdź do tej strony internetowej.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie