Unity C# 之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux網絡基礎(中)

目錄&#xff1a; 再談“協議” HTTP協議 認識URL&#xff1a; urlnecode和urldecode HTTP協議格式&#xff1a; HTTP的方法&#xff1a; 簡易HTTP服務器&#xff1a; 傳輸層 再談端口號&#xff1a; 端口號范圍劃分&#xff1a; netstat&#xff1a; pidof&…

Mybatis三劍客(一)在springboot中手動使用Mybatis

1、pom.xml中引入依賴【注意根據自己的spring boot版本選擇對應的mysql和mybatis版本】 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.mybatis…

Ubantu安裝Docker(完整詳細)

先在官網上查看對應的版本:官網 然后根據官方文檔一步一步跟著操作即可 必要準備 要成功安裝Docker Desktop&#xff0c;必須&#xff1a; 滿足系統要求 擁有64位版本的Ubuntu Jammy Jellyfish 22.04&#xff08;LTS&#xff09;或Ubuntu Impish Indri 21.10。 Docker Deskto…

Redis基礎命令大全

這里寫目錄標題 第一章、Redis 命令大全1.1&#xff09;通用命令語法&#xff1a;ping語法&#xff1a;dbsize語法&#xff1a;select db語法&#xff1a;flushdb語法&#xff1a;exit 或 quit語法&#xff1a;redis-cli 1.2&#xff09;Redis 的 Key 的操作命令語法&#xff1…

【Java基礎】- JVM之Dump文件詳解

Java基礎 - JVM之Dump文件詳解 文章目錄 Java基礎 - JVM之Dump文件詳解一、什么是Dump三、為什么需要Dump分析思路 四、Dump記錄哪些內容4.1 Java dump 文件的格式和內容段格式行格式 4.2 常用分類heap dump和thread dumpheap dumpthread dump 五、如何生產Dump文件5.1 獲取hea…

Elasticsearch之kibana相關命令

1.中文分詞器相關命令 2.拼音分詞器相關命令

服務器之LNMP

lnmp的構成 L&#xff1a;linux系統,操作系統。 N&#xff1a;nginx網站服務&#xff0c;前端,提供前端的靜態頁面服務。同時具有代理,轉發的作用。 轉發&#xff1a;主要是轉發后端請求。轉發到PHP。nginx沒有處理動態資源的功能,他有可以支持轉發動態請求的模塊。 M&…

正則表達式練習

正則表達式練習 工具目的代碼運行結果 工具 pycharm 目的 https://www.77xsw.cc/fenlei/1_1/&#xff1a;第一頁的網址 https://www.77xsw.cc/fenlei/1_2/&#xff1a;第二頁的網址 ... https://www.77xsw.cc/fenlei/1_10/&#xff1a;第十頁的網址 代碼 import requests im…

REDIS主從配置

目錄 前言 一、概述 二、作用 三、缺點 四、redis主從復制的流程 五、搭建redis主從復制 總結 前言 Redis的主從配置是指在Redis集群中&#xff0c;將一個Redis節點配置為主節點&#xff08;master&#xff09;&#xff0c;其他節點配置為從節點&#xff08;slave&#xff09;…

【數據結構?堆】堆排序(理論基礎)

堆的定義  ? 堆是一個完全二叉樹   –所有葉子在同一層或者兩個連續層   –最后一層的結點占據盡量左的位置  ? 堆性質   –為空, 或者最小元素在根上   –兩棵子樹也是堆 存儲方式  ? 最小堆的元素保存在heap[1..hs]內   – 根在heap[1]   –K的左兒子是2k,…

細胞——求細胞數量 C++詳解

細胞——求細胞數量 C詳解 求細胞數量題目描述輸入格式輸出格式樣例樣例輸入樣例輸出 提示數據規模與約定 解法代碼 求細胞數量 題目描述 一矩形陣列由數字 0 0 0 到 9 9 9 組成&#xff0c;數字 1 1 1 到 9 9 9 代表細胞&#xff0c;細胞的定義為沿細胞數字上下左右若還…

vue3中使用component動態組件常見問題

一. 在vue3中使用動態組件問題警告處理 1. 代碼如下 <template><div v-for"(item, index) in navItems" :key"index"><component :is"item.component" :key"item.gameId"></component></div> </te…

nbcio-boot升級springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json問題

升級后&#xff0c;運行顯示項目的時候出現下面錯誤 2023-08-12 10:57:39.174 [http-nio-8080-exec-3] [1;31mERROR[0;39m [36morg.jeecg.common.aspect.DictAspect:104[0;39m - json解析失敗Java 8 date/time type java.time.LocalDateTime not supported by default: add Mo…

Leetcode-每日一題【劍指 Offer 26. 樹的子結構】

題目 輸入兩棵二叉樹A和B&#xff0c;判斷B是不是A的子結構。(約定空樹不是任意一個樹的子結構) B是A的子結構&#xff0c; 即 A中有出現和B相同的結構和節點值。 例如: 給定的樹 A: 3 / \ 4 5 / \ 1 2 給定的樹 B&#xff1a; 4 / 1 返回 true&#xff0…

ffmpeg ts列表合并為mp4

操作系統&#xff1a;ubuntu 注意事項&#xff1a; 1.ts文件順序必須正確&#xff0c;也就是下一幀的dst和pst要比上一幀的大&#xff0c;否則會報錯 2.codecpar->codec_tag要設置為0&#xff0c;否則報錯Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1…

docker版jxTMS使用指南:使用jxTMS采集數據之二

本文是如何用jxTMS進行數據采集的第二部分&#xff0c;整個系列的文章請查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.4版升級內容 docker版本的使用&#xff0c;請查看&#xff1a;docker版jxTMS使用指南 4.0版jxTMS的說明&#xff0c;請查看&#xff1a;4.0版升級內…

Vue + MapBox快速搭建

一、說明&#xff1a; 1.mapbox-gl自2.0版本開始不再開源&#xff0c;需要用戶在官網申請key使用。 2.maplibre GL JS是一個開源庫&#xff0c;它起源于 mapbox-gl-js 的開源分支。該庫的初始版本&#xff08;1.x&#xff09;旨在替代Mapbox的OSS版本。簡單來說maplibre是mapb…

異步場景加載詳解

異步場景加載詳解 介紹 異步場景加載是一種在Unity中加載場景的方式&#xff0c;它允許在加載過程中執行其他操作&#xff0c;并提供了加載進度的反饋。通過異步加載&#xff0c;可以避免加載大型場景時的卡頓現象&#xff0c;提高游戲的流暢性和用戶體驗。 方法 在Unity中…

C++——缺省參數

缺省參數的定義 缺省參數是聲明或定義函數時為函數的參數指定一個缺省值。在調用該函數的時候&#xff0c;如果沒有指定實參&#xff0c;則采用該形參的缺省值&#xff0c;否則使用指定的實參。 void Func(int a 0) {cout << a << endl; } int main() { Func()…

【Kubernetes】Kubernetes之Pod詳解

Pod 一、 Pod1. Pod 基礎概念2. 在 Kubrenetes 集群中 Pod 使用方式2.1 pasue 容器2.2 kubernetes 中的 pause 容器提供的功能 3. Pod 的概念和結構組成4. Pod 的分類5. Pod 容器的分類5.1 基礎容器&#xff08;infrastructure container&#xff09;5.2 初始化容器&#xff08…