首頁 >後端開發 >Python教學 >如何使用 Python 下載網路漫畫:urllib 和 BeautifulSoup?

如何使用 Python 下載網路漫畫:urllib 和 BeautifulSoup?

Patricia Arquette
Patricia Arquette原創
2024-11-07 22:42:02233瀏覽

How to Download Webcomics with Python: urllib and BeautifulSoup?

使用 urllib 診斷 Python 映像下載問題

目前的問題是使用 Python 和 urllib 模組將網路漫畫下載到指定資料夾。最初的嘗試遇到了一個問題,文件似乎被緩存而不是保存在本地。另外,判斷是否有新漫畫的方法也需要解決。

正確擷取檔案

原始程式碼使用 urllib.URLopener() 擷取影像。然而,更適合此任務的函數是 urllib.urlretrieve()。此功能直接將圖片儲存到指定位置,而不是僅僅快取。

確定漫畫數量

識別網站上漫畫的數量並僅下載最新的,該腳本可以解析網站的 HTML 內容。這是使用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'))

完整腳本

結合圖像下載和漫畫計數邏輯,以下腳本簡化了網絡漫畫下載過程:

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)

以上是如何使用 Python 下載網路漫畫:urllib 和 BeautifulSoup?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn