如何实现TradingView与VSCode代码同步及指标代码自动归档?
TradingView指标代码自动归档方案
油猴脚本(Tampermonkey):自己写个简单脚本就能搞定。打开TradingView的个人指标页面后,脚本可以自动遍历所有指标卡片,逐个进入详情页抓取代码,然后自动生成文件下载到本地。核心逻辑就是用
document.querySelector定位页面元素,提取代码文本后通过Blob对象触发下载,不用复杂配置,适合不想折腾编程的人。Puppeteer无头浏览器脚本:用Node.js写个自动化脚本,模拟人工操作。步骤就是启动浏览器、登录TradingView、导航到个人指标页、逐个打开指标链接、提取代码并保存到本地文件。示例代码如下:
const puppeteer = require('puppeteer'); const fs = require('fs'); const path = require('path'); (async () => { const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); await page.goto('https://www.tradingview.com/u/[你的用户名]/scripts/'); // 手动完成登录(或者添加自动登录逻辑) await page.waitForTimeout(10000); // 留时间手动登录 const scriptLinks = await page.$$eval('.script-widget a', links => links.map(link => link.href)); // 创建保存目录 const saveDir = './tradingview-indicators'; if (!fs.existsSync(saveDir)) fs.mkdirSync(saveDir); for (const link of scriptLinks) { await page.goto(link); await page.waitForSelector('.tv-editor__textarea'); const code = await page.$eval('.tv-editor__textarea', el => el.value); const scriptName = await page.$eval('.tv-page-title__title', el => el.textContent.trim().replace(/[\/:*?"<>|]/g, '')); const filePath = path.join(saveDir, `${scriptName}.pine`); fs.writeFileSync(filePath, code); console.log(`已保存:${scriptName}`); } await browser.close(); })();先执行
npm install puppeteer安装依赖,运行脚本时如果有2FA或者验证码,手动完成登录就行,脚本会自动执行后续操作。注意事项:不管用哪种方法,都要注意TradingView的反爬机制,不要太快操作,适当加延迟避免账号被限制;另外脚本的元素选择器可能会随着TradingView页面更新失效,到时需要调整选择器。
内容的提问来源于stack exchange,提问作者Arian Khadem zadeh
相关产品推荐
相关产品推荐

