ホームページ バックエンド開発 PHPチュートリアル Web サイトから画像をクロールし、ローカルに自動的にダウンロードします

Web サイトから画像をクロールし、ローカルに自動的にダウンロードします

Jun 13, 2023 pm 01:28 PM
オートメーション 爬虫類 画像ダウンロード

インターネット時代では、人々はギャラリーやソーシャル プラットフォームなどのさまざまな Web サイトから写真をダウンロードすることに慣れてきました。少数の画像をダウンロードするだけであれば、手動操作は面倒ではありません。しかし、大量の写真をダウンロードする必要がある場合、手動で行うと非常に時間と労力がかかるため、自動化技術を活用して自動的にダウンロードする必要があります。

この記事では、Python クローラー テクノロジを使用して、Web サイトからローカル コンピューターに画像を自動的にダウンロードする方法を紹介します。このプロセスは 2 つのステップに分かれています: 最初のステップは、Python のリクエスト ライブラリまたは Selenium ライブラリを使用して Web サイト上の画像リンクを取得することです; 2 番目のステップは、Python の urllib または取得したリクエスト ライブラリを介して画像をローカルにダウンロードすることですリンク。

ステップ 1: 画像リンクを取得する

  1. リクエスト ライブラリを使用してリンクをクロールする

まず、リクエスト ライブラリを使用して次のことを行う方法を見てみましょう。画像リンクをクロールします。サンプル コードは次のとおりです。

import requests
from bs4 import BeautifulSoup

url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

img_tags = soup.find_all('img')

urls = [img['src'] for img in img_tags]
ログイン後にコピー

Example Web サイトを例として、まずリクエスト ライブラリを使用して Web コンテンツをクロールし、BeautifulSoup ライブラリを使用して HTML を解析します。次に、soup.find_all('img') メソッドを使用して HTML 内のすべての img タグを取得し、リスト内包表記を使用して各タグの src 属性の値を抽出します。

  1. セレン ライブラリを使用してリンクをクロールする

画像リンクを取得する別の方法は、セレン ライブラリを使用することです。サンプル コードは次のとおりです:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from time import sleep

url = 'http://example.com'

options = Options()
options.add_argument('--headless')

service = Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=service, options=options)
driver.get(url)

sleep(2)

img_tags = driver.find_elements_by_tag_name('img')

urls = [img.get_attribute('src') for img in img_tags]
ログイン後にコピー

ここでは ChromeDriver を使用しますが、使用する場合はサンプルコードの 'path/to/chromedriver' にパソコン上の ChromeDriver のパスを記入する必要があります。コードの 2 行目はヘッドレス ブラウザを有効にし、Chrome ブラウザ ウィンドウでの操作を回避し、速度を向上させます。次に、Selenium ライブラリの webdriver モジュールを使用して Chrome ブラウザのインス​​タンスを作成し、driver.get(url) を設定してサンプル Web サイトを開きます。次に、driver.find_elements_by_tag_name('img') を使用してすべての img タグを取得し、各タグの src 属性の値を取得します。

ステップ 2: 画像をダウンロードする

画像をダウンロードするにはさまざまな方法がありますが、ここでは Python 独自の urllib ライブラリまたはリクエスト ライブラリを使用してダウンロードします。サンプル コードは次のとおりです。

import urllib.request

for url in urls:
    filename = url.split('/')[-1]
    urllib.request.urlretrieve(url, filename)
ログイン後にコピー

ここでは、urllib.request ライブラリを使用してネットワークからローカルに画像をダウンロードし、url.split('/')[-1] は画像ファイル名を取得するために使用され、それを変数ファイル名に割り当て、最後に urllib.request.urlretrieve(url, filename) を使用して画像をローカルにダウンロードします。 URL に漢字が含まれている場合は、URL もエンコードする必要があることに注意してください。

ここでは、リクエスト ライブラリを使用してイメージをダウンロードする方法について簡単に紹介します。サンプル コードは次のとおりです:

import requests

for url in urls:
    filename = url.split('/')[-1]
    response = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(response.content)
ログイン後にコピー

ここでは、リクエスト ライブラリを使用してイメージ バイナリ ファイルを取得し、それをファイルに書き込みます。バイナリ ファイルの書き込みモードは 'wb' であるため、ファイルを開いて書き込むには with open(filename, 'wb') as f: を使用する必要があることに注意してください。 、各ファイルが正しく閉じられていることを確認します。

概要

要約すると、Python クローラー テクノロジを通じて、Web サイト上の画像を簡単にクロールし、ローカルに自動的にダウンロードできます。この自動化技術は作業効率の向上に役立ち、大量の画像を処理する作業に非常に役立ちます。同時に、Web サイトから画像をクロールする場合は、関連する法律や規制を遵守し、Web サイトの著作権を尊重する必要があることを思い出してください。公式の許可やウェブサイトの許可がない場合は、ウェブサイト上の画像を無断でクロールしないでください。

以上がWeb サイトから画像をクロールし、ローカルに自動的にダウンロードしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python クローラーを学ぶのにどれくらい時間がかかりますか Python クローラーを学ぶのにどれくらい時間がかかりますか Oct 25, 2023 am 09:44 AM

Python クローラーの学習にかかる時間は人によって異なり、個人の学習能力、学習方法、学習時間、経験などの要因によって異なります。 Python クローラーを学習するには、テクノロジー自体を学習するだけでなく、優れた情報収集スキル、問題解決スキル、チームワーク スキルも必要です。継続的な学習と実践を通じて、徐々に優れた Python クローラー開発者に成長していきます。

SpringBoot と SpringMVC の違いと比較を理解する SpringBoot と SpringMVC の違いと比較を理解する Dec 29, 2023 am 09:20 AM

SpringBoot と SpringMVC を比較し、その違いを理解する Java 開発の継続的な発展に伴い、Spring フレームワークは多くの開発者や企業にとって最初の選択肢となっています。 Spring エコシステムでは、SpringBoot と SpringMVC の 2 つの非常に重要なコンポーネントです。どちらも Spring フレームワークをベースにしていますが、機能や使用方法にいくつかの違いがあります。この記事では、SpringBoot と Spring の比較に焦点を当てます。

PHP 継続的インテグレーションにおける Jenkins: ビルドとデプロイの自動化のマスター PHP 継続的インテグレーションにおける Jenkins: ビルドとデプロイの自動化のマスター Feb 19, 2024 pm 06:51 PM

最新のソフトウェア開発では、コードの品質と開発効率を向上させるために継続的インテグレーション (CI) が重要な実践となっています。その中でも、Jenkins は成熟した強力なオープンソース CI ツールであり、特に PHP アプリケーションに適しています。次のコンテンツでは、Jenkins を使用して PHP 継続的インテグレーションを実装する方法を詳しく説明し、具体的なサンプル コードと詳細な手順を示します。 Jenkins のインストールと構成 まず、Jenkins をサーバーにインストールする必要があります。公式 Web サイトから最新バージョンをダウンロードしてインストールするだけです。インストールが完了したら、管理者アカウントの設定、プラグインのインストール、ジョブの設定など、いくつかの基本的な設定が必要です。新しいジョブの作成 Jenkins ダッシュボードで、[新しいジョブ] ボタンをクリックします。 「フリーズ」を選択します

Apple ショートカット コマンド オートメーションを削除する方法 Apple ショートカット コマンド オートメーションを削除する方法 Feb 20, 2024 pm 10:36 PM

Apple ショートカット オートメーションを削除する方法 Apple の新しい iOS13 システムのリリースにより、ユーザーはショートカット (Apple ショートカット) を使用してさまざまな携帯電話の操作をカスタマイズおよび自動化できるようになり、ユーザーの携帯電話エクスペリエンスが大幅に向上します。ただし、場合によっては、不要になったショートカットを削除する必要があるかもしれません。では、Apple ショートカット コマンド オートメーションを削除するにはどうすればよいでしょうか?方法 1: ショートカット アプリから削除する. iPhone または iPad で「ショートカット」アプリを開きます。下部のナビゲーションバーで選択します

効率的な Java クローラーの実践: Web データ クローリング技術の共有 効率的な Java クローラーの実践: Web データ クローリング技術の共有 Jan 09, 2024 pm 12:29 PM

Java クローラーの実践: Web ページ データを効率的にクロールする方法 はじめに: インターネットの急速な発展に伴い、大量の貴重なデータがさまざまな Web ページに保存されています。このデータを取得するには、多くの場合、各 Web ページに手動でアクセスして情報を 1 つずつ抽出する必要がありますが、これは間違いなく退屈で時間のかかる作業です。この問題を解決するために、人々はさまざまなクローラー ツールを開発しましたが、その中で Java クローラーは最もよく使用されているツールの 1 つです。この記事は、Java を使用して効率的な Web クローラーを作成する方法を読者に理解させ、具体的なコード例を通じてその実践方法を示します。 1. 爬虫類の根元

Python スクリプトを使用して、Linux プラットフォームでタスクのスケジュール設定と自動化を実装します。 Python スクリプトを使用して、Linux プラットフォームでタスクのスケジュール設定と自動化を実装します。 Oct 05, 2023 am 10:51 AM

Python スクリプトを使用して Linux プラットフォームでタスクのスケジューリングと自動化を実装する 最新の情報技術環境では、タスクのスケジューリングと自動化はほとんどの企業にとって不可欠なツールとなっています。 Python は、シンプルで習得しやすく、機能が豊富なプログラミング言語であるため、Linux プラットフォーム上でタスクのスケジュール設定と自動化を実装するのに非常に便利で効率的です。 Python はタスク スケジューリング用のさまざまなライブラリを提供します。その中で最も一般的に使用され、強力なものは crontab です。 crontab は管理およびスケジュール設定システムです

ロボット工学と人工知能がサプライチェーンをどのように自動化できるか ロボット工学と人工知能がサプライチェーンをどのように自動化できるか Feb 05, 2024 pm 04:40 PM

自動化テクノロジーは、さまざまな業界、特にサプライチェーン分野で広く使用されています。現在では、サプライチェーン管理ソフトウェアの重要な部分となっています。今後、自動化技術のさらなる発展に伴い、サプライチェーン全体やサプライチェーン管理ソフトウェアは大きく変化することになります。これにより、物流と在庫管理の効率化が図られ、生産と配送のスピードと品質が向上し、ひいては企業の発展と競争力が促進されます。先進的なサプライチェーンの関係者は、新たな状況に対処する準備ができています。 CIO は、組織にとって最良の成果を確実に実現するために主導権を握る必要があり、サプライ チェーンにおけるロボット工学、人工知能、オートメーションの役割を理解することが重要です。サプライ チェーン オートメーションとは何ですか? サプライ チェーン オートメーションとは、サプライ チェーン活動への人の参加を削減または排除するための技術的手段の使用を指します。それはさまざまなものをカバーします

Java を使用して Linux でスクリプト操作を自動化する方法 Java を使用して Linux でスクリプト操作を自動化する方法 Oct 05, 2023 pm 12:09 PM

Java を使用して Linux で操作を自動化するスクリプトを作成する方法 Linux システムでは、Java を使用して操作を自動化するスクリプトを作成できます。 Java は、強力なオブジェクト指向機能と豊富なクラス ライブラリのサポートを備えたクロスプラットフォーム プログラミング言語です。この記事では、Java を使用して Linux での操作を自動化するスクリプトを作成する方法を学び、具体的なコード例を示します。まず、Java Development Kit (JDK) を Linux にインストールする必要があります。私

See all articles