Rumah >pembangunan bahagian belakang >Tutorial Python >Pengikisan Web Dipermudahkan: Mengekstrak Tajuk Artikel dengan BeautifulSoup

Pengikisan Web Dipermudahkan: Mengekstrak Tajuk Artikel dengan BeautifulSoup

DDD
DDDasal
2024-12-20 13:23:09292semak imbas

Web Scraping Simplified: Extracting Article Titles with BeautifulSoup

Pengikisan Web Dipermudahkan: Mengekstrak Tajuk Artikel dengan BeautifulSoup

pengenalan

Mengikis web ialah kemahiran penting untuk pembangun yang perlu mengumpulkan data daripada web dengan cekap. Dalam tutorial ini, kami akan menelusuri skrip Python mudah untuk mengikis tajuk artikel daripada tapak web berita menggunakan BeautifulSoup, perpustakaan yang berkuasa untuk menghuraikan HTML dan XML.

Menjelang akhir tutorial ini, anda akan mempunyai skrip yang mengekstrak dan memaparkan tajuk artikel daripada halaman web dalam hanya beberapa baris kod!


Prasyarat

Sebelum menyelami kod, pastikan anda telah memasang Python pada sistem anda. Anda juga memerlukan perpustakaan berikut:

  1. permintaan: Untuk membuat permintaan HTTP dan mengambil kandungan halaman web.
  2. BeautifulSoup (bs4): Untuk menghuraikan dan mengekstrak data daripada HTML.

Anda boleh memasang perpustakaan ini menggunakan pip:

pip install requests beautifulsoup4

 Masalahnya

Katakan anda ingin menjejaki berita terkini daripada tapak web seperti BBC News. Daripada melawati tapak secara manual, anda boleh mengautomasikan tugasan ini dengan Python dan mengikis tajuk artikel untuk analisis atau paparan.


Kod

Berikut ialah skrip Python lengkap untuk mengikis tajuk artikel:

import requests
from bs4 import BeautifulSoup

def fetch_article_titles(url):
    try:
        # Step 1: Send an HTTP GET request to fetch the webpage
        response = requests.get(url)
        response.raise_for_status()  # Ensure the request was successful

        # Step 2: Parse the webpage content with BeautifulSoup
        soup = BeautifulSoup(response.text, "html.parser")

        # Step 3: Use a CSS selector to find all article titles
        titles = []
        for heading in soup.select("h3"):  # Most news sites use <h3> tags for article titles
            titles.append(heading.get_text(strip=True))  # Extract and clean the text

        return titles
    except requests.exceptions.RequestException as e:
        print(f"Error fetching the webpage: {e}")
        return []
    except Exception as e:
        print(f"Error during parsing: {e}")
        return []

# Example usage: Fetching titles from BBC News
url = "https://www.bbc.com/news"
titles = fetch_article_titles(url)

# Print the article titles
print("Latest Article Titles:")
for i, title in enumerate(titles, 1):
    print(f"{i}. {title}")


Bagaimana Ia Berfungsi

  1. Buat Permintaan:

    • Kami menggunakan kaedah requests.get untuk mengambil kandungan halaman web sasaran.
    • Kaedah raise_for_status memastikan bahawa sebarang ralat HTTP (seperti 404 atau 500) ditangkap lebih awal.
  2. Menghuraikan Kandungan:

    • Pustaka BeautifulSoup menghuraikan kandungan HTML, menjadikannya mudah untuk mengemudi dan mengekstrak elemen menggunakan pemilih CSS.
  3. Ekstrak Tajuk:

    • Kaedah sup.select mengambil semua

      elemen, yang biasanya mengandungi tajuk artikel di tapak berita.

    • Kaedah get_text mengekstrak teks bersih daripada setiap elemen.

Contoh Output

Apabila anda menjalankan skrip, anda akan mendapat senarai tajuk artikel yang bersih:

Latest Article Titles:
1. Israel-Gaza conflict: Latest updates
2. Global markets fall amid economic uncertainty
3. AI advancements raise ethical questions
4. Football: Premier League results
...

Menyesuaikan Skrip

Anda boleh mengubah suai skrip ini untuk mengikis jenis kandungan lain atau menyasarkan tapak web yang berbeza. Berikut ialah beberapa tweak yang boleh anda cuba:

  • Tukar Pemilih CSS:
    Gantikan "h3" dengan pemilih yang lebih khusus (cth., "div.article-title") jika tapak web sasaran mempunyai struktur yang berbeza.

  • Kikir Data Tambahan:
    Ekstrak URL, tarikh penerbitan atau ringkasan dengan memilih elemen dan atribut HTML yang berkaitan.


Petua untuk Mengikis Beretika

  1. Hormati Syarat Perkhidmatan Tapak Web:
    Sentiasa semak fail robots.txt tapak web atau syarat penggunaan untuk memastikan pengikisan dibenarkan.

  2. Hadkan Kadar Permintaan Anda:
    Elakkan membebankan pelayan dengan menambahkan kelewatan antara permintaan menggunakan kaedah time.sleep.

  3. Kendalikan Perubahan Dengan Anggun:
    Tapak web boleh mengubah strukturnya, memecahkan skrip anda. Sentiasa bersedia untuk nyahpepijat dan mengemas kini kod anda.


Kesimpulan

Hanya dalam beberapa baris kod Python, kami telah membina skrip yang ringkas namun berkuasa untuk mengikis tajuk artikel daripada tapak web berita. BeautifulSoup memudahkan untuk menavigasi dan mengekstrak data yang anda perlukan, manakala permintaan mengendalikan interaksi HTTP.

Pengikisan web boleh membuka banyak peluang, daripada memantau arah aliran hingga mengautomasikan pengumpulan data. Ingatlah untuk mengikis secara bertanggungjawab!

Atas ialah kandungan terperinci Pengikisan Web Dipermudahkan: Mengekstrak Tajuk Artikel dengan BeautifulSoup. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn