2012-01-20 92 views
1

我不斷收到錯誤的多個頁面:invaled語法如何解析與scrapy

1.add_xpath('tagLine', '//p[@class="tagline"]/text()') 

,我似乎無法找出原因,它給我的錯誤,因爲據我可以告訴它是與所有其他1.add_xpath()方法相同的語法。我的另一個問題是我如何請求其他頁面。基本上我正在瀏覽一個大頁面,並通過頁面上的每個鏈接,然後一旦完成了頁面,我希望它轉到下一個大頁面的下一個(按鈕),但我不知道怎麼做。

def parse(self, response): 
    hxs = HtmlXPathSelector(response) 
    for url in hxs.select('//a[@class="title"]/@href').extract(): 
     yield Request(url, callback=self.description_page) 
    for url_2 in hxs.select('//a[@class="POINTER"]/@href').extract(): 
     yield Request(url_2, callback=self.description_page) 

def description_page(self, response): 
    l = XPathItemLoader(item=TvspiderItem(), response=response) 
    l.add_xpath('title', '//div[@class="m show_head"]/h1/text()') 
    1.add_xpath('tagLine', '//p[@class="tagline"]/text()') 
    1.add_xpath('description', '//div[@class="description"]/span') 
    1.add_xpath('rating', '//div[@class="score"]/text()') 
    1.add_xpath('imageSrc', '//div[@class="image_bg"]/img/@src') 
    return l.load_item() 

任何幫助,將不勝感激。當談到python和scrapy時,我仍然是一個noob。

回答

1
def description_page(self, response): 
    l = XPathItemLoader(item=TvspiderItem(), response=response) 
    l.add_xpath('title', '//div[@class="m show_head"]/h1/text()') 
    1.add_xpath('tagLine', '//p[@class="tagline"]/text()') 
    1.add_xpath('description', '//div[@class="description"]/span') 
    1.add_xpath('rating', '//div[@class="score"]/text()') 
    1.add_xpath('imageSrc', '//div[@class="image_bg"]/img/@src') 
    return l.load_item() 

你有位1,而不是變量名l的。

+0

你是男人之神。非常感謝你。你是怎麼看到這個的?這很瘋狂。 :)你也有任何想法,爲什麼它只解析一個頁面,而不是每個頁面? –

+0

我想我抓到了,因爲我用一組不同的字體。在我的字體中,1和l之間的差異相當大。 :) – warvariuc

+1

這真棒!我花了20分鐘的時間看着代碼的和平,試圖找出不同之處。我想這對我來說是一個教訓,不要使用這種簡單的錯誤變量名稱。但再次感謝你。 :) –