Unity C# 之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息
目錄
Unity C# 之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息
一、簡單介紹
二、實現原理
三、注意事項
四、效果預覽
?五、關鍵代碼
一、簡單介紹
Unity中的一些知識點整理。
本節簡單介紹在Unity開發中的,使用 HttpClient,獲取指定網頁的相關信息,然后進行數據清洗,去掉html 格式,以及標簽,函數,多余的空格等信息,僅留下和網頁顯示差不多的文字信息,為什么這么做呢,其實這里一個使用場景是把網頁數據喂給GPT,然后讓 GPT 進行處理總結,如果你有新的方式也可以留言,多謝。
二、實現原理
1、HttpClient 獲取指定網頁的 html 數據
2、使用 HtmlAgilityPack 進行 html 的數據進行 去除所有的<script>標簽及其內容,獲取純文本內容,最后再去除多余的空格和空行
三、注意事項
1、直接代碼訪問網頁,最好添加上 User-Agent,不然,可能不能正常訪問
2、注意 NuGet 安裝? HtmlAgilityPack? 包
四、效果預覽
?五、關鍵代碼
using HtmlAgilityPack;
using System;
using System.Linq;
using System.Net.Http;
using System.Text.RegularExpressions;namespace TestHtml
{class Program{static async System.Threading.Tasks.Task Main(string[] args){//string url = "https://movie.douban.com/chart";//string url = "http://www.weather.com.cn/";//string url = "https://movie.douban.com/";//string url = "http://time.tianqi.com/";string url = "http://time.tianqi.com/shenzhen/";string htmlContent = @"<html><head><title>Sample Page</title><script>function myFunction() {alert(""Hello!"");}</script></head><body><h1>Welcome to My Page</h1><p>This is a sample page with some content.</p></body></html>";using (HttpClient client = new HttpClient()){// 設置請求頭以模擬瀏覽器訪問client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3");// 訪問網頁并獲取HTML內容htmlContent = await client.GetStringAsync(url);// 輸出獲取的HTML內容//Console.WriteLine(htmlContent);}// 創建HtmlDocument對象并加載HTML內容HtmlDocument doc = new HtmlDocument();doc.LoadHtml(htmlContent);// 去除所有的<script>標簽及其內容foreach (var script in doc.DocumentNode.DescendantsAndSelf("script").ToArray()){script.Remove();}// 獲取純文本內容string text = doc.DocumentNode.InnerText;// 去除多余的空格和空行text = Regex.Replace(text, @"\s+", " ").Trim();// 輸出展示內容Console.WriteLine(text);}}
}