我需要从给出锚定标记的特定文本的href属性中提取url。使用Xpath提取锚定标记的href给定文本
from scrapy.spider import Spider
from scrapy.selector import Selector
from nba.items import NBAItem
class ESPNSpider(Spider):
name = "ESPN"
allowed_domains = ["espn.com"]
start_urls = ["http://espn.go.com/nba/teams"]
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//*[@id="content"]/div[3]/div[1]')
items = []
for site in sites:
item = NBAItem()
item['team_name'] = site.xpath('//a[@class="bi"]/text()').extract()
item['team_link'] = site.xpath('//a[@class="bi"]/@href').extract()
item['team_stats_link'] = site.xpath('//a[text()='Stats']/@href').extract()
items.append(item)
return items
这是我遇到的麻烦线路:
item['team_stats_link'] = site.xpath('//a[text()='Stats']/@href').extract()
我也尝试:
item['team_stats_link'] = site.xpath('//a[contains(text(), 'Stats')]/@href).extract()
相关网站:http://espn.go.com/nba/teams
'site.xpath('// a [text()='Stats']/@ href')'是一个Python语法错误。看看单引号。 – Tomalak
啊!一直以来。感谢您的帮助。 – user1636797