まず、プロジェクトを作成します
コマンドライン入力で#
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 [ 「データ」]