C# 获取网页上指定的元素
直接上代码
//using System;
//using System.Net.Http;
//using System.Threading.Tasks;
//using HtmlAgilityPack;
//using Newtonsoft.Json;
//class Program
//{
// static async Task Main(string[] args)
// {
// using var httpClient = new HttpClient();
// var url = "https://go-upc.com/search?q=776545980144"; // 替换为你要获取数据的网页地址
// var response = await httpClient.GetAsync(url);
// var htmlContent = await response.Content.ReadAsStringAsync();
// var htmlDocument = new HtmlDocument();
// htmlDocument.LoadHtml(htmlContent);
// var selectedNode = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='target-class']");
// if (selectedNode != null)
// {
// var data = selectedNode.InnerText; // 提取节点内部文本数据
// var jsonData = new { Data = data };
// var jsonResult = JsonConvert.SerializeObject(jsonData);
// Console.WriteLine(jsonResult); // 返回JSON数据给前端
// }
// }
//}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
using var httpClient = new HttpClient();
var url = "https://go-upc.com/search?q=776545980144"; // 替换为你要获取数据的网页地址
var response = await httpClient.GetAsync(url);
var htmlContent = await response.Content.ReadAsStringAsync();
var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(htmlContent);
var productNameNode = htmlDocument.DocumentNode.SelectSingleNode("//h1[@class='product-name']");
var eanNode = htmlDocument.DocumentNode.SelectSingleNode("//td[@class='metadata-label'][contains(text(), 'EAN')]/following-sibling::td");
var upcNode = htmlDocument.DocumentNode.SelectSingleNode("//td[@class='metadata-label'][contains(text(), 'UPC')]/following-sibling::td");
var descriptionNode = htmlDocument.DocumentNode.SelectSingleNode("//h2[contains(text(), 'Description')]/following-sibling::span");
if (productNameNode != null && eanNode != null && upcNode != null && descriptionNode!=null)
{
var productName = productNameNode.InnerText.Trim();
var ean = eanNode.InnerText.Trim();
var upc = upcNode.InnerText.Trim();
var description = descriptionNode.InnerText.Trim();
var jsonData = new
{
ProductName = productName,
EAN = ean,
UPC = upc,
Description = description
};
var jsonResult = JsonConvert.SerializeObject(jsonData);
Console.WriteLine(jsonResult); // 返回JSON数据给前端
Console.ReadLine();
}
}
}
浙公网安备 33010602011771号