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

私は過去 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部分!他在

    标签下的Mekong.com_html/css_WEB-ITnose での画像クロールのスクレイピーな実際の戦闘についての最初の紹介里面, 首先实例一个在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 までご連絡ください。
    HTML、CSS、およびJavaScriptの未来:Web開発動向HTML、CSS、およびJavaScriptの未来:Web開発動向Apr 19, 2025 am 12:02 AM

    HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

    HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

    Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

    HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

    HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

    HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

    Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

    HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

    htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

    HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

    HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

    テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

    HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

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

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

    See all articles

    ホット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ヘンタイを無料で生成します。

    ホットツール

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    EditPlus 中国語クラック版

    EditPlus 中国語クラック版

    サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境