2012-11-30 9 views
2

임은 같은 페이지 (동일 URL)에 '메인 테이블'내부의 서로 다른 '테이블'에서 데이터를 추출하려고합니다. 항목 필드는 모든 하위 테이블에서 같은 XPath에/같은 구조를 가지고, 내가 직면하고있는 문제는 단지에 이 페이지에 테이블 섹션에 대한 '복수'XPath를 추가 할 수 있습니다. 여기에 내 코드가 어떻게 생겼는지 Scrapy 기어 여러 XPathSelector는

:이 달성 될 경우

from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from tutorial.items import TutorialItem 

class MySpider(BaseSpider): 
name = "test" 
allowed_domains = ["blabla.com"] 
start_urls = ["http://www.blablabl..com"] // Start_url Doesnt change = Same Page 



def parse(self, response): 
    hxs = HtmlXPathSelector(response) 
    titles = [hxs.select('//tr[@class="index class_tr group-6487"]')] 

    //Here I would like to have Mltiple XPathSelectors ex: 

    // titles = [hxs.select('//tr[@class="index class_tr group-6488"]')] 
    // titles = [hxs.select('//tr[@class="index class_tr group-6489"]')] 

    // Each for a table section within the same 'Main Table' 



    items = [] 
    for title in titles: 
     item = TutorialItem() 
     item ['name'] = title.select('td[3]/span/a/text()').extract() 
     item ['encryption'] = title.select('td[5]/text()').extract() 
     item ['compression'] = title.select('td[8]/text()').extract() 
     item ['resolution'] = title.select('td[7]/span/text()').extract() 
     items.append(item) 
    return items 

내가 어떤 힌트를 부탁드립니다; 각 테이블 섹션마다 다른 스파이더를 쓰면 동일한 URL/테이블에 대해 10 개의 스파이더로 끝나고 동일한 'csv'파일 내에서 데이터를 순서대로 검색 할 수 있는지 확실하지 않습니다.

답변

1

이 시도 :

titles = [hxs.select('//tr[@class="index class_tr group-6487"] | //tr[@class="index class_tr group-6488"] | //tr[@class="index class_tr group-6489"]')] 
+0

Thnaks 많이 미세 :) 보이는 –