2011-12-05 5 views
1

CrawlSpiderを使用して、Webページからデータをクロールして抽出しています。スクラップがダイレクトリンクをリダイレクトしています

開始URLにはリンクが1つしかありません(直接リンクです)、そのリンクからデータをスクラップする必要があります(BaseSpiderを使用して直接リンクを与えるとデータが正常に掻き出されています)。しかし、私はCrawlSpiderを実行すると、それはいくつかのweired 301要求を取得しており、制御はscrapingを行うparse_item()に来ていません。

私は、直接リンクだと思いますhttp://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj?pid=pend4fpkyk2w9fd4&_l=U0SclLhlhi7jGPVIA8xWyA--&_r=tcVDd6I7AkBG9cR2hX21MA--&ref=5b471a78-5264-4e09-ba61-03f8965e10d0へのリンクを持っているmain_page.htmlと呼ばれるローカルホストページを持っています。クロールスパイダーを実行する上で、私はscrapy-

2011-12-05 15に次の出力を参照してください:54:34 + 0530 [flipkart_spider] DEBUG:クロール(200)のhttp://localhost/main_page.html >(referer:None)
2011-12-05 15:54:35 + 0530 [flipkart_spider] DEBUG:(301)をhttp://www.flipkart.com/office-supplies/pen/faber-castell/にリダイレクトするitmd4fpkgkd7e3fj?PID = pend4fpkyk2w9fd4 & _l = U0SclLhlhi7jGPVIA8xWyA-- & _r = tcVDd6I7AkBG9cR2hX21MA-- & REF = 5b471a78-5264-4e09-ba61-03f8965e10d0> からhttp://www.flipkart.com/office-supplies/pen/faber- castell/itmd4fpkgkd7e3fj?_l = U0SclLhlhi7jGPVIA8xWyA_&_r = tcVDd6I7AkBG9cR2hX21MA_& PID = pend4fpkyk2w9fd4 & REF = 5b471a78-5264-4e09-ba61-03f8965e10d0>

私は呼ばれませんparse_item()でprint文を持っています。何がここに間違っていますか?

私はそれがになりますので、あなたのURLで ?後にすべてのものを削除するべきだと思い

答えて

2

http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj

更新:

ほとんどの場合、クエリ文字列の属性のみのために、コンテンツは影響しないもののために使用されています例:ここから来たページ、アクティブなセッションID、セッションIDあなたのブラウザからクローラにURLをコピーすると、urlの引数のいくつかがあなたのuser-agentと何か関係があり、同じURLが別のエージェントで開かれたときに予期しない結果が生じる可能性があります。

URLから削除するのが安全な引数がわかっている場合は、重複したページから自分自身も保存します。通常、あなたは異なるカテゴリから同じアイテムにアクセスできますが、引数のref=がここに来たページの情報を伝えると思うので、アイテムのURLが異なるたびにアクセスします。

+0

ありがとうございました。出来た。しかし、なぜ私は理解できませんでしたか?私は私にそのようなリンクを与えるウェブサイトをクロールしようとしている? – Siddharth

関連する問題