ホームページ >バックエンド開発 >Python チュートリアル >Python でウェブコミックをダウンロードする方法: urllib と BeautifulSoup?

Python でウェブコミックをダウンロードする方法: urllib と BeautifulSoup?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-07 22:42:02292ブラウズ

How to Download Webcomics with Python: urllib and BeautifulSoup?

urllib による Python イメージのダウンロードの問題の診断

ここでの質問は、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。