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

Patricia Arquette
Lepaskan: 2024-11-07 22:42:02
asal
156 orang telah melayarinya

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'))
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!