【问题标题】:How to get get value of java script's variable from a website in c# .net如何从c#.net中的网站获取java脚本变量的值
【发布时间】:2013-08-22 19:13:17
【问题描述】:

我想从 c# net 中的网站获取 JavaScript 变量的值。目前我使用这个代码:

System.Net.WebClient wc = new System.Net.WebClient();

string webData = wc.DownloadString("://87.126.167.13/");

textBox1.Text = Convert.ToString(webData);

它返回 HTML。但我想要这个链接的温度值: ://87.126.167.13/ 但它返回:

<td>Temperature:</td><td><script>document.write(MNS,TW1,TW2,'.',TF,TF1)</script> C</td>

【问题讨论】:

  • 您可以在 87.126.167.13/x 尝试其 CSV 输出,而不是该特定链接,然后您可以获得任何日期的土壤温度和空气温度值

标签: c# webclient downloadstring


【解决方案1】:

该网站的 CSV 页面格式 (http://87.126.167.13/x) 可能对您更有用。它看起来像:

Date,AirTemp,SoilTemp,Humidity
2013-08-22 14:46:00,+31.20,+21.6,32
2013-08-22 15:13:55,+32.22,+21.5,31
** more values **
2013-08-22 13:50:26,+30.39,+21.6,34
2013-08-22 14:18:19,+31.40,+21.6,33
1004+2200

你可以用一些简单的代码来解析这些值,比如

var lines = webData.Split('\n');
var allData = lines.Skip(1).Take(lines.Length - 2).Select(x => new WeatherData(x));
var latestDate = allData.Max(x => x.DateTime);
var latestAirTemp = allData.First(x => x.DateTime == latestDate).AirTemp;

public class WeatherData
{
    public DateTime DateTime { get; set; }
    public decimal AirTemp { get; set; }
    public decimal SoilTemp { get; set; }
    public int Humidity { get; set; }
    public WeatherData(string rawData)
    {
        // implement
    }
}

那个或脚本文件http://87.126.167.13/s,它定义了你提到的MNS,TW1,...。由此,您可以解析出您想要的值。它看起来像:

var AN3=   10;var MNS="+";var TW1=    1;var TW2=    9;var TF=    7;var TF1=    0;var HR=   22;var MN=   23;var SC=   39;var DY=   22;var MH=    8;var YR=    3;var RH="   53";var WD="South-East";var WS="00";var MNS2="+";var ST="21.5";var BP="8261";var RAD2="1.11";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2013-03-25
    相关资源
    最近更新 更多