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); } } }
复制