2014-09-13 1 views
3

저는 Scrapy를 처음 접했고 XPath를 살펴 보았습니다.Scrapy/Python/XPath - 데이터 내에서 데이터를 추출하는 방법?

div 내의 HTML 목록 항목에서 제목 및 링크를 추출하려고합니다.

def parse(self, response): 
    for t in response.xpath('//*[@id="categories"]/ul'): 
     for x in t.xpath('//li'): 
      item = TgmItem() 
      item['title'] = x.xpath('a/text()').extract() 
      item['link'] = x.xpath('a/@href').extract() 
      yield item 

을하지만 이러한 시도와 같은 결과를 받았다 : 나는 (목록 항목을 통해 반복 한 후, id로 상향 링크 사업부를 선택), 그 일에 대해 갈 것이라고 생각하는 방법을 다음 코드는

내 보낸 csv 파일이 아래로 소스 코드를 위쪽에서 리튬 데이터를 포함
def parse(self, response): 
    for x in response.xpath('//li'): 
     item = TgmItem() 
     item['title'] = x.xpath('a/text()').extract() 
     item['link'] = x.xpath('a/@href').extract() 
     yield item 

...

나는 전문가가 아니에요 누군가가 되거 수 있다면, 시도의 숫자를했습니다 이것은 인정 될 것이다.

답변

5

당신은 당신의 XPath 표현식은 점으로 내부 루프 내에서 사용을 시작해야합니다

for t in response.xpath('//*[@id="categories"]/ul'): 
    for x in t.xpath('.//li'): 

이 그것을 현재의 요소가 아닌 전체 페이지의 범위에서 검색 할 것입니다.

Working with relative XPaths에 대한 자세한 설명을 참조하십시오.

관련 문제