Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk memuat turun Webcomics dengan Python: urllib dan BeautifulSoup?

Bagaimana untuk memuat turun Webcomics dengan Python: urllib dan BeautifulSoup?

Patricia Arquette
Patricia Arquetteasal
2024-11-07 22:42:02244semak imbas

How to Download Webcomics with Python: urllib and BeautifulSoup?

Mendiagnosis Isu Muat Turun Imej Python dengan urllib

Persoalan yang timbul berkisar tentang memuat turun komik web ke folder yang ditetapkan menggunakan Python dan modul urllib. Percubaan awal menghadapi masalah di mana fail kelihatan dicache dan bukannya disimpan secara setempat. Selain itu, kaedah untuk menentukan kewujudan komik baharu perlu ditangani.

Mengambil Fail Dengan Betul

Kod asal menggunakan urllib.URLopener() untuk mendapatkan semula imej . Walau bagaimanapun, fungsi yang lebih sesuai untuk tugas ini ialah urllib.urlretrieve(). Fungsi ini menyimpan terus imej ke lokasi yang ditentukan dan bukannya hanya menyimpannya dalam cache.

Menentukan Kiraan Komik

Untuk mengenal pasti bilangan komik di tapak web dan memuat turun hanya yang terkini, skrip boleh menghuraikan kandungan HTML tapak web. Berikut ialah teknik menggunakan perpustakaan BeautifulSoup:

import bs4

url = "http://www.gunnerkrigg.com//comics/"
html = requests.get(url).content
soup = bs4.BeautifulSoup(html, features='lxml')

comic_list = soup.find('select', {'id': 'comic-list'})
comic_count = len(comic_list.find_all('option'))

Skrip Lengkap

Menggabungkan muat turun imej dan logik kiraan komik, skrip berikut memperkemas proses muat turun komik web:

import urllib.request
import bs4

def download_comics(url, path):
    """
    Downloads webcomics from the given URL to the specified path.
    """

    # Determine the comic count
    html = requests.get(url).content
    soup = bs4.BeautifulSoup(html, features='lxml')

    comic_list = soup.find('select', {'id': 'comic-list'})
    comic_count = len(comic_list.find_all('option'))

    # Download the comics
    for i in range(1, comic_count + 1):
        comic_url = url + str(i) + '.jpg'
        comic_name = str(i) + '.jpg'
        urllib.request.urlretrieve(comic_url, os.path.join(path, comic_name))

url = "http://www.gunnerkrigg.com//comics/"
path = "/file"

download_comics(url, path)

Atas ialah kandungan terperinci Bagaimana untuk memuat turun Webcomics dengan Python: urllib dan 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