ホームページ ウェブフロントエンド htmlチュートリアル Mekong.com_html/css_WEB-ITnose での画像クロールのスクレイピーな実際の戦闘についての最初の紹介

Mekong.com_html/css_WEB-ITnose での画像クロールのスクレイピーな実際の戦闘についての最初の紹介

Jun 24, 2016 am 11:53 AM

私は過去 2 日間、Scrapy クローラー フレームワークを研究しており、練習のためにクローラーを作成する予定です。私がよくやるのは写真を見ることです。そうです、芸術的な写真です。もっと美しい写真を見ると、間違いなく美意識が高まり、エレガントなプログラマーになれると信じています。 O(∩_∩)O~ というのは冗談なので、早速本題に入り、イメージ クローラーを作成してみましょう。

デザインアイデア: クロールのターゲットは Meikong.com のモデル写真で、CrawlSpider を使用して各写真の URL アドレスを抽出し、抽出された画像 URL を静的 HTML テキストに書き込んで保存すると、それを開いて画像を表示できます。 私の環境はwin8.1、python2.7+Scrapy 0.24.4です。環境の設定方法は説明しません。Baiduで検索してください。

参照官方文档,我总结了建立爬虫程序大致有四个步骤:

  • 创建一个scrapy project
  • 定义需要从网页中提取的要素項目
  • 实スパイダーの一種、インターフェイス経由で URL とコピーを完了しますアイテム抽出機能
  • アイテムパイプラインクラスを実装してアイテムの保管機能を完成させます。
  • 次のステップは非常に簡単です。手順に従ってください。まず、プロジェクトに moko という名前を付けます。 Scrapy startproject moko コマンドを入力すると、現在のディレクトリに moko ファイル ディレクトリが作成されます。ファイルの使用に興味がある場合は、主にドキュメントを参照してください。今回使用しました。

    項目の定義 items.py でキャプチャしたいデータを定義します。

    # -*- coding: utf-8 -*-# Define here the models for your scraped items## See documentation in:# http://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass MokoItem(scrapy.Item):    # define the fields for your item here like:    # name = scrapy.Field()    url = scrapy.Field()
    ログイン後にコピー

  • ここの URL は、後で説明する最終結果の dict 番号を保存するために使用されます。名前はランダムに付けられます。 。たとえば、画像の作成者の名前もクロールする必要がある場合は、name =crapy.Field() などを追加できます。
  • 次に、Spiders フォルダーに入り、その中に Python ファイルを作成します。ここに mokospider.py という名前を付け、Spider を実装するためのコア コードを追加します。
  • Spider は、scrapy.contrib.spiders.CrawlSpider から継承された Python クラスです。必須の定義済みメンバーが 3 つあります

    name: name、このスパイダーの識別子は一意である必要があります。異なるクローラーは異なる名前を定義します

    start_urls: URL のリスト、スパイダーはこれらの Web ページからクロールを開始します

    parse() : 解析メソッドは、呼び出されると、各 URL から返された Response オブジェクトを唯一のパラメータとして渡し、キャプチャされたデータ (項目に解析) を解析して照合し、さらに多くの URL を追跡します。私たちのプロジェクトの名前は MOKO です。クローラーによって許可されるフィールド、Allowed_domains は、制限領域である moko.cc に限定されます。以下のウェブページ。クローラーの開始アドレスは http://www.moko.cc/post/aaronsky/list.html から始まります。次に、クロール ルール Rule を設定します。これが、CrawlSpider が基本的なクローラーと異なる点です。たとえば、Web ページ A からクロールを開始します。Web ページ A には多数のハイパーリンク URL があります。クローラーは、設定されたルールに従ってクロールを実行します。ルールに準拠する URL にハイパーリンクを設定し、このプロセスを繰り返します。コールバック関数は、Web ページがこのコールバック関数を呼び出すときに使用されます。parse というデフォルト名を使用しなかった理由は、公式ドキュメントに、parse がクローラー フレームワークで呼び出され、競合が発生する可能性があると記載されているためです。 ターゲット http://www.moko.cc/post/aaronsky/list.html には、Web ページにたくさんの写真があります。たとえば、www.moko.cc/post/1052776.html などです。 , http://www.moko.cc/post/ ここにあるものはすべて同じで、各リンクの異なる部分は後ろの番号です。ここでは、正規表現を使用してルールを入力します。 rules = (Rule(SgmlLinkExtractor(allow=('/post/d*.html')), callback = 'parse_img', follow=True),) は、現在の Web を指します。ページ、すべて一致 サフィックス /post/d*.html を持つすべての Web ページがクロールされ、parse_img を呼び出すことによって処理されます。

  • 次に、解析関数 parse_img を定義します。これはより重要です。これが渡すパラメーターは、URL を開いた後にクローラーによって返される応答オブジェクトです。必要なものを変換するためにクローラーを使用します。コンテンツはフィルターで除外されます。どうやってフィルタリングするのでしょうか? ? ?笑、xpath() パス式を使用してコンテンツを解析する素晴らしい Selector メソッドがあります。解析する前に、Web ページを詳細に分析する必要があります。ここで使用するツールは firebug です。インターセプトされた Web コア コードは

      我们需要的是src2部分!他在

    标签下的里面, 首先实例一个在Items.py里面定义的MokoItem()的对象urlItem,用牛逼的Selector传入response,我这里用了一个循环,每次处理一个url,利用xpath路径表达式解析取出url,至于xpath如何用,自行百度下。结果存储到urlItem里面,这里用到了我们Items.py里面定义的url了!

    然后定义一下pipelines,这部分管我们的内容存储。

    from moko.items import MokoItemclass MokoPipeline(object):    def __init__(self):        self.mfile = open('test.html', 'w')    def process_item(self, item, spider):        text = '<img src="' + item['url'] + '" alt = "" />'        self.mfile.writelines(text)    def close_spider(self, spider):        self.mfile.close()
    ログイン後にコピー

    建立一个test.html文件用来存储结果。注意我的process_item里用到了一些html规则,作用是直接在html里面显示图片。结尾在定义一个关闭文件的方法,在爬虫结束时候调用。

    最后定义设置一下settings.py

    BOT_NAME = 'moko'SPIDER_MODULES = ['moko.spiders']NEWSPIDER_MODULE = 'moko.spiders'# Crawl responsibly by identifying yourself (and your website) on the user-agent#USER_AGENT = 'moko (+http://www.yourdomain.com)'ITEM_PIPELINES={'moko.pipelines.MokoPipeline': 1,}     
    ログイン後にコピー

     


     

          最后展示一下效果图吧,祝各位玩的快乐 ^_^

                   

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

    Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

    Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

    GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

    WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

    Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

    HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

    HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

    CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

    画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

    See all articles