目前的問題是使用 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中文網其他相關文章!