当前的问题是使用 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中文网其他相关文章!