scrapy

2012-01-20 12 views
1

내가 오류가 계속 여러 페이지 구문 분석하는 방법 :scrapy

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

에 대한 invaled 구문을하고 나는 그것이 나에게 그 오류를주고있다 왜 지금까지 내가 그것이 말할 수 있기 때문에, 알아낼 수 없습니다 다른 모든 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() 

이 문제에 대한 도움을 주시면 감사하겠습니다. 나는 파이썬과 치료에 관해서는 여전히 멍청하다.

답변

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() 

당신은 변수 이름 l 대신 자리 1 있습니다.

+0

당신은 인간의 신입니다. 많이 soooo 고마워. 어떻게 그걸 잡았 니? 그게 미친 짓이야. :) 또한 모든 페이지가 아닌 한 페이지 만 구문 분석하는 이유에 대한 아이디어가 있습니까? –

+0

나는 다른 글꼴 세트로 리눅스를 사용하기 때문에 나는 그것을 잡았다 고 생각한다. 내 글꼴에서는 1과 l의 차이가 아주 큽니다. :) – warvariuc

+1

정말 대단해! 나는 그 코드의 평화를보고 20 분이 지나면 무엇이 다른지 알아 내려고 노력했다. 나는 그것이 단순한 실수 할 수있는 변수 이름을 사용하지 않는다는 교훈이라고 생각한다. 하지만 다시 한번 감사드립니다. :) –