我正在尝试使用Html Agility Pack获取“Transaction and get url”的全部价值。当我使用谷歌检查HTML源时,我能够看到带有网址的完整交易ID。我的问题是如何获得所有交易的全部价值以及与之相关的网址。
这是网站的网址:http://explorer.litecoin.net/address/LeDGemnpqQjrK8v1s5HZKaDgjgDKQ2MYiK
带回日期的示例“TransactionBlockApprox.TimeAmountBalanceCurrency 5130f066e0 ... 4682752013-11-28 09:14:170.30.3LTC“
protected void Page_Load(string address)
{
string Url = address;
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
string wallet = doc.DocumentNode.SelectNodes("/html/body/div/div/div/table")[0].InnerText[0].InnerText;
}
答案 0 :(得分:1)
有些时候你必须手动做事你不能直接获得完整的链接,因为使用javascript,为了得到它你必须操纵包含href的td元素的innerhtml并得到双重qutations之间的什么,及其总是更好地将数据表示为对象,例如
public class data
{
public itemWithlink Transaction { get; set; }
public itemWithlink Block { get; set; }
public itemWithlink ApproxTime { get; set; }
public itemWithlink Amount { get; set; }
public itemWithlink Balance { get; set; }
public itemWithlink Currency { get; set; }
}
public class itemWithlink
{
public string numberOrname { get; set; }
public string link { get; set; }
}
并生成一个包含链接值的表列表,只要找到它就可以设置
var list = htmlDoc.DocumentNode.SelectNodes("//table/tr").
Skip(1).
Select(tr => tr.Elements("td").
Select(td => new itemWithlink() {
numberOrname = td.InnerText, link = td.InnerHtml.Contains("href") ?
td.InnerHtml.Substring(td.InnerHtml.IndexOf("\""), td.InnerHtml.LastIndexOf("\""))
.Replace("..",@"http://explorer.litecoin.net/") : null })
.ToArray())
.Select(row => new data() { Transaction = row[0], Block = row[1], ApproxTime = row[2], Amount = row[3], Balance = row[4] , Currency = row[5] }).ToList();