[英]Empty list returning by xpath in scrapy
我正在研究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時,它返回一個空列表,如上所述,任何人都可以告訴我為什么它返回一個空數組,並且我的代碼出了什么問題。
提前致謝
響應為JSON格式:
{
"prodList": [
{
"pid": "955492",
"pnm": "Samsung Star 3 Duos",
"mctid": "27",
"pc": "5,650",
"mrp": "6290",
"pdc": "10",
"pimg": "Samsung-Star-3-duos-1.jpg",
"rt": "8",
"prc": "1",
"per": "Y",
(...)
},
(...)
}
為了解析它,您可以使用python的json模塊。 您要實現的目標的示例如下: 空列表,用於通過JavaScript onclick函數實現分頁的href 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.