2014-10-20 123 views
0

我想從網址列表中抓取一些數據,例如http://basketball.realgm.com/international/league/12/French-LNB-Pro-A/teams來拉取所有的團隊名稱。下面是我的蜘蛛,它通過網址運行,但沒有獲取任何數據?Scrapy沒有輸出

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是因爲在XPath的tbody的失敗。瀏覽器(如Firefox和Chrome)會將該節點添加到表中,如果該節點不存在於頁面的源中。

由於tbody節點可能或可能不在頁面的源代碼中,因此可以使用scrapy外殼程序與scrapy所看到的進行交互式調試。用法:scrapy shell 'http://www.example.org'

相關問題:Parsing HTML with XPath, Python and Scrapy