ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して Web サイトから画像をスクレイピングするにはどうすればよいですか?

Python を使用して Web サイトから画像をスクレイピングするにはどうすればよいですか?

WBOY
リリース: 2024-08-25 06:01:02
オリジナル
987 人が閲覧しました

How to scrape images from a website using Python?

Python を使用して Web サイトから画像をスクレイピングするには、通常、ネットワーク要求を行うための request、HTML を解析するための BeautifulSoup、および Pillow (の更新バージョン) など、いくつかの人気のあるライブラリを使用します。 PIL) 画像処理用。

Python が Web サイトから画像をスクラップする手順

ここでは、Web サイトから画像をスクレイピングする方法を示す簡単なステップバイステップのガイドを示します:

1. 必要なライブラリをインストールする

これらのライブラリをまだインストールしていない場合は、pip を通じてインストールできます。
pip インストール リクエスト beautifulsoup4 枕

2. リクエストを送信して Web ページのコンテンツを取得します

リクエスト ライブラリを使用して HTTP リクエストを送信し、Web ページの HTML コンテンツを取得します。

3. HTMLを解析して画像リンクを見つけます

BeautifulSoup を使用して Web ページのコンテンツを解析し、画像の URL を見つけます。

4.画像をダウンロードする

リクエスト ライブラリを再度使用して、画像の URL に従って画像コンテンツをダウンロードし、Pillow ライブラリを使用して画像をローカルに保存します。
簡単なコード例を次に示します:

import requests
from bs4 import BeautifulSoup
from PIL import Image
from io import BytesIO

# URL of the target page
url = 'https://example.com'

# Send a request and get the web page content
response = requests.get(url)
html = response.text

# Parsing HTML
soup = BeautifulSoup(html, 'html.parser')

# Find all image tags
images = soup.find_all('img')

# Traverse the image tags and download the images
for img in images:
    src = img['src']  # Get the URL of the image
    response = requests.get(src)
    img_data = response.content

    # Using PIL to process image data
    image = Image.open(BytesIO(img_data))

    # Save the image locally
    image.save(f'downloaded_{img["src"].split("/")[-1]}')

print('Image download complete!')
ログイン後にコピー

クロールしている Web サイトの詳細に応じて、このサンプル コードを調整する必要がある場合があることに注意してください。たとえば、一部の Web サイトでは、JavaScript を介して画像が動的に読み込まれる場合があります。その場合、Selenium などのツールを使用してブラウザの動作をシミュレートする必要がある場合があります。 ‌

IP ブロックまたはスクレイピング制限を回避するにはどうすればよいですか?

IP ブロックまたはクロール制限を回避するには、次の戦略を採用できます。

1.プロキシを使用する

高品質のプロキシ サーバーを選択し、IP アドレスを動的にローテーションして、ブロックされる可能性を減らします。同時に、匿名性の高いプロキシを使用すると、実際の IP アドレスをより適切に隠すことができ、検出されるリスクを軽減できます。

2.クロール頻度とリクエスト量を制御する

クロール速度を遅くし、ターゲット Web サイトへの負荷を軽減し、短期間に大量のリクエストを送信しないようにします。過剰な同時リクエストによるサーバーの過負荷を避けるために、同時クローラーの数を適切に設定します。

3.実際のユーザーの行動をシミュレートする

ユーザー エージェントを偽装し、クロール モードをランダム化し、実際のユーザーの TCP または TLS フィンガープリントをシミュレートして、クローラーとして識別されるリスクを軽減します。

4.ウェブサイト規定および法令等の遵守

robots.txt ファイルを確認し、API の使用ルールを遵守し、違法または著作権を侵害する行為を行わないでください。

また、Web サイトをスクレイピングする前に、サイトの robots.txt ファイルを遵守し、自分の行動が関連する法律や規制に準拠していることを確認してください。 ‌

以上がPython を使用して Web サイトから画像をスクレイピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート