首先,我是新的这个“scrapy”和“Python”我最近开始我的CE学位,请耐心哈哈哈。我正在尝试使用表中的数据(站点URL:https://www.fundsexplorer.com.br/ranking)但是我看到的关于网页抓取的指南我只是不能从网站的表中抓取数据,我认为表的结构与我用来训练lol的简单结构非常不同。如果有人能帮助我,我会很高兴,至少能够从行中抓取数据。
Thx很多。
下面是我尝试的代码的开头:
PS:我知道它的incomplete,这是因为在这个项目后约4小时试图得到的数据,我只是愤怒退出哈哈。
import scrapy
class FiispiderSpider(scrapy.Spider):
name = "fiispider"
allowed_domains = ["fundsexplorer.com.br"]
start_urls = ["https://fundsexplorer.com.br/ranking"]
def parse(self, response):
rows = response.css('table.default-fiis-table__container__table tr')
for row in rows:
yield {
'name':
}
#table = response.css('table.default-fiis-table__container__table')`
1条答案
按热度按时间toe950271#
表的数据是动态获取的。如果你在浏览器开发工具的网络标签中看到,你会发现数据是通过 AJAX 调用https://www.fundsexplorer.com.br/wp-json/funds/v1/get-ranking得到的。为了得到每一行,你只需要查询url,从json转换它,然后产生对象列表中的每一行。您还需要从浏览器的请求头中获取
X-Funds-Nonce
令牌的值,并将其附加到您的scrapy请求中。例如:
部分输出