2017-03-22 99 views
0

我想使用Scrapy和xpath從網站上刮數據,但我遇到了一些麻煩。這裏是我的代碼:使用Scrapy和Xpath刮數據

class MaijiaSpider(scrapy.Spider): 
    name = 'maijiaSpider' 
    start_urls =["http://www.maijia.com/index.html#/item/list/?keyword=recaro"] 

    def parse(self, response): 
     articles = response.xpath("//table[@class='ui-table ui-table-striped ui-table-inbox tablefixed']//tr[1]/td[2]/div/div[1]/a/@href") 
     for article in articles: 
      yield{ 
       'link': article.xpath('.//td[2]//a/@href').extract_first() 
      } 

問題是文章總是空的,因此它永遠不會進入for循環。我究竟做錯了什麼?我嘗試了不同的xpath字符串,但似乎沒有任何工作。

+0

這個URL這是一個相當長的XPath表達式。 '/ div [@ class =「cell-box」]/a'怎麼樣?出錯的可能性更小。 – leovp

+0

如何從'start-urls'中的'URL'獲取頁面源代碼? – Andersson

+0

@leovp我也試過,但它仍然不起作用 –

回答

2

此頁面使用JavaScript來獲取數據,該數據的網址是:

http://www.maijia.com/data/item/list?api_name=item_get_list&type=ALL&pageNo=1&pageSize=10&keyword=recaro&sortField=amount30&sortType=desc 

你可以找到在Chrome瀏覽器開發工具

enter image description here

+0

對不起,但我剛開始使用scrapy,究竟是什麼意思?我應該在代碼中更改什麼? –

+0

@Giada Confortola將請求網址更改爲http://www.maijia.com/data/item/list?api_name=item_get_list&type=ALL&pageNo=1&pageSize=10&keyword=recaro&sortField=amount30&sortType=desc –