2014-10-20 3 views
0

예를 들어 http://basketball.realgm.com/international/league/12/French-LNB-Pro-A/teams과 같은 URL 목록에서 일부 데이터를 긁어내어 모든 팀 이름을 가져 오려고합니다. 아래는 내 스파이더이지만 URL을 통해 실행 중이지만 데이터를 가져 오지는 않습니까?Scular 출력 없음

from scrapy.spider import Spider 
from scrapy.selector import HtmlXPathSelector 
from teams.items import TeamsItem 

class TeamsSpider(Spider): 
    name = "teamcrawler" 
    allowed_domains = ["basketball.realgm.com"] 
    f = open("teamurls.txt") 
    start_urls = [url.strip() for url in f.readlines()] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     titles = hxs.select("/html/body/div[1]/div[2]/table/tbody/tr/td/div[2]/table/tbody/tr") 
     items = [] 
     for title in titles: 
      item = TeamsItem() 
      item["URL"] = title.select("td[1]/a/@href").extract() 
      item["Team"] = title.select("td[1]/a/text()").extract() 
      items.append(item) 
     print items 
     return items 

답변

0

XPath에서 tbody으로 인해 XPath가 실패합니다. 브라우저 (예 : Firefox 및 Chrome)는 해당 노드가 페이지 소스에없는 경우 표에 추가합니다.

tbody 노드가 페이지의 소스에 있거나 없을 수도 있기 때문에 scrapy shell을 사용하여 scrapy가 보는 것과 대화식 디버깅을 수행 할 수 있습니다. 용도 : scrapy shell 'http://www.example.org'

관련 질문 : Parsing HTML with XPath, Python and Scrapy