我需要從給出錨定標記的特定文本的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