ホームページ >バックエンド開発 >Python チュートリアル >Python でウェブコミックをダウンロードする方法: urllib と BeautifulSoup?
ここでの質問は、Python と urllib モジュールを使用して指定されたフォルダーにウェブコミックをダウンロードすることを中心に展開しています。最初の試行では、ファイルがローカルに保存されずにキャッシュされているように見えるという問題が発生しました。さらに、新しいコミックの存在を判断する方法にも対処する必要がありました。
ファイルを正しく取得する
元のコードは、urllib.URLopener() を利用して画像を取得しました。 。ただし、このタスクに適した関数は urllib.urlretrieve() です。この機能は、画像を単にキャッシュするのではなく、指定した場所に直接保存します。
コミック数の決定
Web サイト上のコミック数を特定し、その数だけをダウンロードします。最新のものでは、スクリプトは Web サイトの 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 中国語 Web サイトの他の関連記事を参照してください。