Scrapy没有输出
问题描述:
我想从网址列表中抓取一些数据,例如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
答
你的XPath是因为在XPath的tbody
的失败。浏览器(如Firefox和Chrome)会将该节点添加到表中,如果该节点不存在于页面的源中。
由于tbody
节点可能或可能不在页面的源代码中,因此可以使用scrapy外壳程序与scrapy所看到的进行交互式调试。用法:scrapy shell 'http://www.example.org'