Rumah >pembangunan bahagian belakang >Tutorial Python >How Beautiful Soup digunakan untuk mengekstrak data daripada Web Awam
Beautiful Soup ialah perpustakaan Python yang digunakan untuk mengikis data daripada halaman web. Ia mencipta pokok parse untuk menghuraikan dokumen HTML dan XML, menjadikannya mudah untuk mengekstrak maklumat yang dikehendaki.
Sup Cantik menyediakan beberapa fungsi utama untuk mengikis web:
Untuk menggunakan Beautiful Soup, anda perlu memasang perpustakaan bersama-sama dengan parser seperti lxml atau html.parser. Anda boleh memasangnya menggunakan pip
#Install Beautiful Soup using pip. pip install beautifulsoup4 lxml
Apabila berurusan dengan tapak web yang memaparkan kandungan merentas berbilang halaman, pengendalian penomboran adalah penting untuk mengikis semua data.
import requests from bs4 import BeautifulSoup base_url = 'https://example-blog.com/page/' page_number = 1 all_titles = [] while True: # Construct the URL for the current page url = f'{base_url}{page_number}' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # Find all article titles on the current page titles = soup.find_all('h2', class_='article-title') if not titles: break # Exit the loop if no titles are found (end of pagination) # Extract and store the titles for title in titles: all_titles.append(title.get_text()) # Move to the next page page_number += 1 # Print all collected titles for title in all_titles: print(title)
Kadangkala, data yang anda perlu ekstrak bersarang dalam berbilang lapisan teg. Begini cara mengendalikan pengekstrakan data bersarang.
import requests from bs4 import BeautifulSoup url = 'https://example-blog.com/post/123' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # Find the comments section comments_section = soup.find('div', class_='comments') # Extract individual comments comments = comments_section.find_all('div', class_='comment') for comment in comments: # Extract author and content from each comment author = comment.find('span', class_='author').get_text() content = comment.find('p', class_='content').get_text() print(f'Author: {author}\nContent: {content}\n')
Banyak tapak web moden menggunakan AJAX untuk memuatkan data secara dinamik. Mengendalikan AJAX memerlukan teknik yang berbeza, seperti memantau permintaan rangkaian menggunakan alat pembangun penyemak imbas dan mereplikasi permintaan tersebut dalam pengikis anda.
import requests from bs4 import BeautifulSoup # URL to the API endpoint providing the AJAX data ajax_url = 'https://example.com/api/data?page=1' response = requests.get(ajax_url) data = response.json() # Extract and print data from the JSON response for item in data['results']: print(item['field1'], item['field2'])
Pengikisan web memerlukan pertimbangan yang teliti terhadap risiko undang-undang, teknikal dan etika. Dengan melaksanakan perlindungan yang sesuai, anda boleh mengurangkan risiko ini dan menjalankan pengikisan web secara bertanggungjawab dan berkesan.
Beautiful Soup ialah perpustakaan berkuasa yang memudahkan proses mengikis web dengan menyediakan antara muka yang mudah digunakan untuk menavigasi dan mencari dokumen HTML dan XML. Ia boleh mengendalikan pelbagai tugas penghuraian, menjadikannya alat penting untuk sesiapa sahaja yang ingin mengekstrak data daripada web.
Atas ialah kandungan terperinci How Beautiful Soup digunakan untuk mengekstrak data daripada Web Awam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!