如何使用R语言RCurl包下载OTC Markets股票筛选器的CSV文件
下载OTC Markets股票筛选器CSV的RCurl实现方案
OTC Markets股票筛选器的CSV导出没有公开静态下载链接,实际走的是后端POST接口,无需登录也不需要模拟浏览器渲染页面,直接用RCurl构造对应请求即可拿到文件,实现代码如下:
library(RCurl) # 构造请求参数,可按需调整 req_params <- list( # 筛选条件,空值代表导出全量数据,有自定义筛选条件可替换为浏览器控制台抓包拿到的filters值 filters = "{}", # 排序字段 sort = "symbol", # 排序方向 direction = "asc", # 导出字段,可和网页端勾选的展示列对应调整 columns = "symbol,name,price,change,changePercent,volume,marketCap,country,sector,industry,otcTier", export = "csv" ) # 发起POST请求获取CSV内容 csv_data <- postForm( uri = "https://www.otcmarkets.com/research/stock-screener/api/download", .params = req_params, .opts = list( # 配置请求头避免被拦截 referer = "https://www.otcmarkets.com/research/stock-screener", useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" ) ) # 写入本地文件 writeBin(charToRaw(csv_data), "otc_stock_screener_result.csv")
如果你需要导出自定义筛选后的结果,打开浏览器控制台的网络标签,点击网页端的导出CSV按钮,找到名为download的接口请求,复制请求体里的filters参数替换上述代码中的对应值即可。
内容的提问来源于stack exchange,提问作者BroNKo
相关产品推荐
相关产品推荐

