[英]Scrapy stops directly after I don't yield a request in parse
我正在嘗試制作一個通過一定數量的起始 url 的蜘蛛,如果結果頁面是正確的,我會產生另一個請求。 問題是,如果我嘗試不產生第二個請求,蜘蛛將直接停止。 如果我 yield 第二個請求沒有問題。
這是相關代碼:
def start_requests(self):
urls = ['https://www.hltv.org' + player for player in self.hashPlayers]
print(len(urls))
for url in urls:
return [scrapy.Request(url=url, callback=self.parse)]
def parse(self, response):
result = response.xpath("//div[@class = 'playerTeam']//a/@href").get()
if result is None:
result = response.xpath("//span[contains(concat(' ',normalize-space(@class),' '),' profile-player-stat-value bold ')]//a/@href").get()
if result is not None:
yield scrapy.Request(
url = "https://www.hltv.org" + result,
callback = self.parseTeam
)
所以我想要一種方法讓蜘蛛在我調用解析 function 之后繼續並且不產生請求。
def start_requests(self):
urls = ['https://www.hltv.org' + player for player in self.hashPlayers]
print(len(urls))
for url in urls:
return [scrapy.Request(url=url, callback=self.parse)]
如果您使用return
, function 將終止,循環將不會迭代到下一個值,並且單個請求將發送到 Scrapy 引擎。 用yield
替換它,這樣它就返回一個生成器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.