Minha função parse deveria retornar um valor de 200 itens de uma lista, mas o resultado de uma raspagem mostra apenas 20 resultados visíveis, eu criei um count para comprovar e ele retorna 200 mas não os resultados. Alguém saberia me dizer porque o parse do scrapy faz isso?
import scrapy
class CoinSpider(scrapy.Spider):
name = "coinmarketcap"
def start_requests(self):
url = "https://coinmarketcap.com/all/views/all/"
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36',
'Accept': 'application/json,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4',
}
yield scrapy.Request(url=url, headers=headers)
def parse(self, response, **kwargs):
count = 0
for row in response.css("tbody tr"):
count += 1
yield {
"number": int(count),
"name": row.css("a.cmc-table__column-name--name::text").get(),
"symbol": row.css('td.cmc-table__cell--sort-by__symbol div:nth-child(1)::text').get(),
"market_cap": row.css("span.sc-1ow4cwt-1::text").get(),
"price": row.css('div.sc-131di3y-0 span::text').get()
}