C# 获取网页上指定的元素
直接上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | //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(); } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异