単純なスクレイプスパイダーを使用して、リンクのリストと各リンクからのスクラップデータを追跡しようとしていますが、問題が発生しています。
スクレイプシェルでは、スクリプトを再作成すると、新しいURLのgetリクエストが送信されますが、クロールを実行すると、リンクからデータが返されません。私が返す唯一のデータは、リンクに移動する前にスクレイプされた開始URLからのものです。
リンクからデータを取得するにはどうすればよいですか?
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)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加