Python を使用して Web サイトから画像をスクレイピングするには、通常、ネットワーク要求を行うための request、HTML を解析するための BeautifulSoup、および Pillow (の更新バージョン) など、いくつかの人気のあるライブラリを使用します。 PIL) 画像処理用。
ここでは、Web サイトから画像をスクレイピングする方法を示す簡単なステップバイステップのガイドを示します:
これらのライブラリをまだインストールしていない場合は、pip を通じてインストールできます。
pip インストール リクエスト beautifulsoup4 枕
リクエスト ライブラリを使用して HTTP リクエストを送信し、Web ページの HTML コンテンツを取得します。
BeautifulSoup を使用して Web ページのコンテンツを解析し、画像の URL を見つけます。
リクエスト ライブラリを再度使用して、画像の 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 アドレスを動的にローテーションして、ブロックされる可能性を減らします。同時に、匿名性の高いプロキシを使用すると、実際の IP アドレスをより適切に隠すことができ、検出されるリスクを軽減できます。
クロール速度を遅くし、ターゲット Web サイトへの負荷を軽減し、短期間に大量のリクエストを送信しないようにします。過剰な同時リクエストによるサーバーの過負荷を避けるために、同時クローラーの数を適切に設定します。
ユーザー エージェントを偽装し、クロール モードをランダム化し、実際のユーザーの TCP または TLS フィンガープリントをシミュレートして、クローラーとして識別されるリスクを軽減します。
robots.txt ファイルを確認し、API の使用ルールを遵守し、違法または著作権を侵害する行為を行わないでください。
また、Web サイトをスクレイピングする前に、サイトの robots.txt ファイルを遵守し、自分の行動が関連する法律や規制に準拠していることを確認してください。
以上がPython を使用して Web サイトから画像をスクレイピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。