scrapyビルドのpythonの基本的な枠組み

まず、プロジェクトを作成します

コマンドライン入力で#
scrapy startprojectのXXX#プロジェクトを作成します。

第二に、アイテムのファイルを書き込みます

#クロールは、フィールドの名前を書く必要が = scrapy.Field()例#を

ライト・ファイルをクロールスパイダーに第三に、アクセス

①手動に直接爬虫類という名前のファイル書き込み
        の.pyするための新しいファイルを作成し
、コマンドモードで作成されたクローラファイル② scrapy gensipderのYYY
xxx.com 名がドメインエリアをクロール、同じプロジェクト名にすることはできませんが

第四に、爬虫類のファイルを書き込みます

start_urls行う際#クローラは、最初のURLのドメインをクロール
初期モデルオブジェクトトランスデューサ
iTeam
= TencentItem()#iTeamに導入文書 iTeam [ ' XXX ' ] = each.xpath(" /テキスト./td [1] / Aを( )).extract()[ 0 ]
、リストの最初の文字を削除し、それを文字列に変換する抽出、選択のリストを返し#xpath。
パイプラインファイル#1にiTeamを ページに複数のページをクロールするため#、あなたがコールするコールバック関数を要求する必要があります。 #は、スケジューラキューに要求を再送信、キューは、ダウンロードマネージャに 、各ページが要求を処理された後#、次のページリクエストが送信され 、収率 scrapy.Request(URL、コールバック= self.parseを)
#関数名の解析は、ディスパッチャに送信されたコールバック関数をトリガーする要求、歩留りがあり
// 各サイクルが実行を終了書き出すは。

第五に、パイプファイルを書きます

まず、初期化メソッドを定義
        :DEFに__init __(自己)
            self.filename =オープン(" XXX "" W " 
    DEF process_item(セルフ、iTeam、スパイダー):
        の形式に辞書(iTeam)#パイソン辞書
        json.dumps(dictのを(iTeam)は、ensure_ascii)= Falseの+ " \ N- "     #は、JSON形式に変換
        self.filename.write(text.encode(" UTF-8 "の問題を書き込むことができない場合(.encodeを追加するために、))#を" 。8 UTF のリターンはiTeamは
    、ファイルクローズ
        )デフclose_spider(自己、クモを:
            self.filename.close()

第六に、構成設定ファイルには、
    パイプラインにITEM_PIPELINES設定項目、設定ファイルを見つけました

七、リクエストヘッダを設定するには、
    DEFAULT_REQUEST_HEADERSの構成設定ファイルを見つけました

八、プログラムを実行します

scrapyクロールファイル名

アプリケーションの書き換えを作成crawlspider

まず、プロジェクトを作成します

gensipderのscrapy - Tクロールテンセントtencent.com 
    #インポートcrawlspiderクラスルールとルールからインポートCrawlSpider、ルールscrapy.spider 
    リンクを抽出するために使用されるルールに沿って、入ってくるリンクを一致#クラスルールからscrapy.linkextractorsインポートLinkExtractorのからTencentSpider。アイテムのインポートTencentItemの
     クラスTencentSpider(CrawlSpider):#継承CrawlSpiderクラス = XXX     #爬虫類名
        allow_domains = ドメインクロール[]#制御クローラー
        start_urlsを = [] 
        データ#通常のマッチングルールのルールに沿ったページ情報に対応
        pagelinkLinkExtractor =(許可=(" スタート= \ dの+ " )) バッチメソッド呼び出し要求
        ルール = [ 
            #pagelink = urlには、真のリンクをフォローアップするかどうか、リンクのメソッド呼び出しに従う
            ルール(PageLink、コールバック = " parseTencent "フォロー、= 真)
        ] 
    
ベタの
    形式にPythonのJSON形式に変換し、データ・セグメントは、のリストである
    データ = json.loads(response.text [ データ]
    

 

おすすめ

転載: www.cnblogs.com/jake-jin/p/11787195.html