2017-08-17 3 views
0

Scrapyを使用して、以下のリンクの下にあるページをクロールしようとしています。私は次のページへのHREFはJavaScriptで書かれた見つけ、私は次のページをクロールしようとした http://nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000 、= 2 nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000 &ページ。 まず、以下のコードを使用してすべての可能性を見つけることを試みました。Python- Scrapyを使用してWebページをクロールし、Javascriptを満たす

def parse_item(self, response): 
    for pageNum in range(1, 10): 
     new_url = response.url + "&page=%d" % pageNum 
     yield Request(new_url, callback=self.parse_detailpage) 

が唯一のサブページがあり、それは例外ではないだろうからである。しかし、私は nc.mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000 & = 7ページとNCことがわかりました。 mofcom.gov.cn/channel/qytc2017/list.shtml?p_index=210000 & page = 6同じコンテンツを共有しています。確かに、一部のページには10以上のサブページがあり、クロールを続行できません。誰か私にいくつかのアイデアを与えることができますか?私は10の評判を持っていないと私は1つ以上のリンクと画像を提示することができます、私は本当に申し訳ありません。誰かが助けることができれば本当に感謝しています。

答えて

0

Splashを使用すると、JavaScriptを使用してページをレンダリングできます。 Splashはscrapy-splashでScrapyとシームレスに統合できます。

別のアプローチは、ページネーションに関する情報を含むスクリプトを解析することです。スクリプトが存在しているページの数が含まれています

var v_PageCount = 6; 

あなたはScrapyを使用してスクリプトの内容を抽出して、このページのカウント数を抽出するために、例えばjs2xmlライブラリを使用することができます。

関連する問題