我正在尝试从网址列表中抓取一些数据,例如http://basketball.realgm.com/international/league/12/French-LNB-Pro-A/teams来提取所有团队名称。下面是我的蜘蛛,它正在运行URL但没有获取任何数据?
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 :(得分:0)
由于XPath中的tbody
,您的XPath失败了。浏览器(如Firefox和Chrome)会将该节点添加到表中,如果它不在页面源中。
由于tbody
节点可能位于页面源中,也可能不位于页面源中,因此您可以使用scrapy shell执行scrapy看到的交互式调试。用法:scrapy shell 'http://www.example.org'