Scrapy下面的链接没有获取数据
问题描述:
我想要遵循链接列表和每个链接的废料数据与一个简单的scrapy蜘蛛,但我有麻烦。Scrapy下面的链接没有获取数据
在scrapy shell中,当我重新创建脚本时,它发送新url的get请求,但是当我运行爬网时,我没有从链接中获取任何数据。我找回的唯一数据来自在链接前被抓到的起始网址。
如何从链接中抓取数据?
import scrapy
class QuotesSpider(scrapy.Spider):
name = "players"
start_urls = ['http://wiki.teamliquid.net/counterstrike/Portal:Teams']
def parse(self, response):
teams = response.xpath('//*[@id="mw-content-text"]/table[1]')
for team in teams.css('span.team-template-text'):
yield{
'teamName': team.css('a::text').extract_first()
}
urls = teams.css('span.team-template-text a::attr(href)')
for url in urls:
url = response.urljoin(url)
yield scrapy.Request(url, callback=self.parse_team_info)
def parse_team_info(self, response):
yield{
'Test': response.css('span::text').extract_first()
}
答
而不是使用
url = response.urljoin(url)
yield scrapy.Request(url, callback=self.parse_team_info)
使用
yield response.follow(url, callback=self.parse_team_info)
始终使用标签'python' - 它突出的代码,使更具可读性。 – furas
使用'print()'显示变量中的值以及代码的哪一部分被执行 - 它有助于发现问题。 – furas