【问题标题】:How can I pull data from website using C#如何使用 C# 从网站中提取数据
【发布时间】:2022-06-16 00:34:15
【问题描述】:

对于个人教育应用, 我正在尝试获取数据 从以下页面进入我的应用程序: https://www.tradingview.com/symbols/NASDAQ-AAPL/technicals/ 任何帮助或建议将不胜感激。

【问题讨论】:

  • 访问他们的 API 将是理想的。否则“抓取”页面可能是也可能不是一个选项。
  • 在我的浏览器检查器中查看 XHR 请求,我注意到一个 /america/scan 请求。响应包含 80 个数字,其中列出了振荡器/平均线的值,但不包含买入/卖出刻度盘后面的数据。号码列表就足够了吗?

标签: c# .net


【解决方案1】:

您可以复制网站发出的请求以获取相关号码列表。下面的代码可能是一个好的开始。

var httpRequest = (HttpWebRequest) WebRequest.Create("<url>");
httpRequest.Method = "POST";
httpRequest.Accept = "application/json";
string postData = "{<json payload>}";
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) {
    streamWriter.Write(postData);
}

var httpResponse = (HttpWebResponse) httpRequest.GetResponse();
string result;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
    result = streamReader.ReadToEnd();
}

Console.WriteLine(result);

现在,对于 &lt;url&gt;&lt;json payload&gt; 值:

  1. 在浏览器中打开网络检查器。
  2. 转到“网络”选项卡。
  3. 设置它以显示 Fetch/XHR/AJAX 请求。
  4. 刷新页面。
  5. 查找要复制的请求。
  6. 复制请求 URL。
  7. 复制有效负载(JSON 数据,要在您的代码中使用它,您必须在每个 " 之前添加一个 \

旁注:您向其发出自动请求的网站的所有者可能对您的工具不太满意,如果它在短时间内发出过多请求,您/它可能会被阻止。

【讨论】:

    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多