私はscrapyに取り組んでいます、私はサイトからいくつかのデータを収集しようとしています、
スパイダーコード
class NaaptolSpider(BaseSpider):
name = "naaptol"
domain_name = "www.naaptol.com"
start_urls = ["http://www.naaptol.com/buy/mobile_phones/mobile_handsets.html"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
cell_matter = hxs.select('//div[@class="gridInfo"]/div[@class="gridProduct gridProduct_special"]')
items=[]
for i in cell_matter:
cell_names = i.select('//p[@class="proName"]/a/text()').extract()
prices = i.select('//p[@class="values"]/strong/text()').extract()
item = ExampleItem()
item['cell_name'] = cell_names
item['price'] = prices
items.append(item)
return [FormRequest(url="http://www.naaptol.com/faces/jsp/search/searchResults.jsp",
formdata={'type': 'cat_catlg',
'catid': '27',
'sb' : '9,8',
'frm' : '1',
'max' : '15',
'req': 'ajax'
},
callback=self.parse_item
)]
def parse_item(self, response):
hxs = HtmlXPathSelector(response)
cell_matter = hxs.select('//div[@class="gridInfo"]/div[@class="gridProduct gridProduct_special"]')
for i in cell_matter:
cell_names = i.select('//p[@class="proName"]/a/text()').extract()
prices = i.select('//p[@class="values"]/strong/text()').extract()
print cell_names
print prices
結果:
2012-06-15 09:38:36+0530 [naaptol] DEBUG: Crawled (200) <POST http://www.naaptol.com/faces/jsp/search/searchResults.jsp> (referer: http://www.naaptol.com/buy/mobile_phones/mobile_handsets.html)
[]
[]
実際、私はjavascriptにあるページネーションを達成するためのフォームを投稿しました
ここでは、parse_itemメソッドのparseメソッドから応答を受け取っていますが、parseメソッドと同じようにxpathを使用すると、上記のように空のリストが返されます。なぜ空の配列が返されるのか、コードの何が問題なのかを誰かに教えてもらえますか。
前もって感謝します