Pythonでの簡易クローラ機能の実装例

WBOY
リリース: 2016-12-05 13:27:12
オリジナル
1804 人が閲覧しました

毎日インターネットを閲覧していると、素敵な写真を目にすることが多く、その写真を保存してダウンロードしたり、デスクトップの壁紙やデザイン素材として使用したくなります。

最も一般的な方法は、マウスを右クリックして「名前を付けて保存」を選択することです。ただし、一部の画像には、マウスを右クリックしたときに名前を付けて保存するオプションがありません。スクリーンショット ツールを使用してキャプチャすることもできますが、これにより画像の鮮明さが低下します。よし〜!実際、右クリックしてページのソース コードを表示するのは非常に便利です。

Python を使用してこのような単純なクローラー関数を実装し、必要なコードをローカルでクロールできます。 Python を使用してこのような機能を実装する方法を見てみましょう。

1、ページ全体のデータを取得します

まず、ダウンロードする画像のページ全体の情報を取得します。
getjpg.py

リーリー

Urllib モジュールは、ローカル ファイルを読み取るのと同じように、Web ページ データを読み取るためのインターフェイスを提供します。まず、getHtml() 関数を定義します。

urllib.urlopen() メソッドは、URL アドレスを開くために使用されます。

read() メソッドは、URL 上のデータを読み取り、URL を getHtml() 関数に渡し、ページ全体をダウンロードするために使用されます。プログラムを実行すると、Web ページ全体が印刷されます。

次に、ページ上で必要なデータをフィルターします
Python は非常に強力な正規表現を提供します。まず、Python の正規表現について少し知る必要があります。

Baidu Tieba でいくつかの美しい壁紙を見つけ、前のセクションに移動してツールを表示するとします。画像のアドレスが見つかりました。 src=”http://imgsrc.baidu.com/forum...jpg” pic_ext=”jpeg”


コードを次のように変更します:


リーリー
getImg() 関数も作成しました。これは、取得したページ全体で必要な画像リンクをフィルターするために使用されます。 re モジュールには主に正規表現が含まれています:


re.compile() は正規表現を正規表現オブジェクトにコンパイルできます。


re.findall()メソッドは、html内のimgre(正規表現)を含むデータを読み込みます。


スクリプトを実行すると、ページ全体に含まれる画像の URL アドレスが取得されます。


3、ページのフィルタリングされたデータをローカルに保存します

フィルタリングされた画像アドレスを for ループを通じてトラバースし、ローカルに保存します。 コードは次のとおりです。


リーリー

ここでの核心は、urllib.urlretrieve() メソッドを使用してリモート データをローカルに直接ダウンロードすることです。


for ループを通じて取得した画像接続をたどります。画像のファイル名をより標準化するために、名前を変更します。x 変数に 1 を追加します。保存場所のデフォルトは、プログラムの保存ディレクトリです。


プログラムが完了すると、ローカルディレクトリにダウンロードされたファイルが表示されます。

読んでいただきありがとうございます。皆さんのお役に立てれば幸いです。このサイトのご支援に感謝します。

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