WPF CefSharp 爬蟲

来源:https://www.cnblogs.com/EllisQian/archive/2019/11/17/11879149.html
-Advertisement-
Play Games

1、實際需求 EMS郵件的自動分揀,要分揀首先需要獲取郵件的面單號和郵寄地址,現在我們的快遞一般都有紙質面單的,如果是直接使用圖像識別技術從紙質面單中獲取信息,這個開發的成本和實時性都很難保證,獲取信息之後還要分別處理,出口件要分到全國的對應地區,進口件要分到所在地區的各個小區。所以要提前獲取面單號 ...


1、實際需求              EMS郵件的自動分揀,要分揀首先需要獲取郵件的面單號和郵寄地址,現在我們的快遞一般都有紙質面單的,如果是直接使用圖像識別技術從紙質面單中獲取信息,這個開發的成本和實時性都很難保證,獲取信息之後還要分別處理,出口件要分到全國的對應地區,進口件要分到所在地區的各個小區。所以要提前獲取面單號和郵寄地址兩個關鍵信息,處理完之後,直接把面單號和地址信息傳給分揀設備。   2、客觀情況              郵政系統有自己的內網,辦公系統,有查詢的頁面,暫時沒有提供相關的介面開發,看來只能通過爬蟲的相關技術獲取這些關鍵信息了。   3、CefSharp(WPF)              比較瞭解C#,這次準備用WPF來開發,之前用CefSharp做過一些混合開發,Html來做頁面,後臺用C#,可以訪問一些本地資源,覺得這種組合比較適合我。看到這個需求,首先就是想到了用CefSharp來訪問他們的內網系統,然後寫JS來自動實現瀏覽頁面,嵌入自定義的 funciton,訪問後臺的C#代碼,保存需要的信息。   4、具體實現              使用 CefSharp 的Browser.RegisterJsObject 註冊自定義的 funciton ,這個一步是整個爬蟲的重中之重,這樣之後,就相當於可以控制瀏覽器的訪問邏輯了,可以按照我們自己的設計流程來運行,這裡面到底是如何運用和能發揮的能量,只取決於你的想象力。     1)註冊自定義 function   2) 可以在 JS中訪問的後臺C#代碼   3)JS中調用自定義funciton     5、總結                整個過程中的關鍵環節是要讓爬取的那個頁面能訪問到後臺C#代碼,CefSharp在爬蟲中就相當於航空母艦級別的存在,是一個重量級的武器,可以不用自己寫正則獲取數據,它已經幫你解析好了,只用寫JS腳本就可以了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 採集的站點: 免費代理IP http://ip.yqie.com/ipproxy.htm66免費代理網 http://www.66ip.cn/89免費代理 http://www.89ip.cn/無憂代理 http://www.data5u.com/雲代理 http://www.ip3366.net/ ...
  • 場景 在IDEA中新建SpringBoot項目,後啟動項目時提示: Error:(3, 32) java: 程式包org.springframework.boot不存在 實現 將pom.xml中parent依賴版本降低,這裡改為2.1.6,然後在右邊Maven面板中點擊Reimport All Ma ...
  • Java生鮮電商平臺-高可用微服務系統如何設計? 說明:Java生鮮電商平臺高可用架構往往有以下的要求: 高可用。這類的系統往往需要保持一定的 SLA,7*24 時不間斷運行不代表完全不掛,而是有一定的百分比的。 例如我們常說的可用性需達到 4 個 9(99.99%),全年停機總計不能超過 1 小時 ...
  • 新聞 "使用Pulumi和.NET Core創建現代雲應用" "宣告.NET Core 3.1預覽版3" "ML.NET模型構建器升級" ".NET Framework修複工具" "Mac上的Visual Studio:使用鍵綁定控制你的IDE" "Sojobo——二進位分析框架" 視頻及幻燈片 " ...
  • 在分析jdk1.8的HashMap實現原理之前,咱們先可以瞭解一下紅黑樹的設計,相比jdk1.7的HashMap而言,jdk1.8最重要的就是引入了紅黑樹的設計,當衝突的鏈表長度超過8個的時候,鏈表結構就會轉為紅黑樹結構。 ...
  • 場景 IDEA版本過低的話會導致某些IDEA插件沒法安裝,比如Lombok插件和EasyCode插件等。 實現 雙擊exe安裝包 點擊Next 選擇安裝路徑,點擊Next 設置桌面快捷方式,增加到右鍵菜單,添加文件關聯和添加到環境變數,點擊Next 預設並點擊Install 等待安裝完成 選擇稍後重 ...
  • 題目大意: 給一個開始單詞beginword和一個結束單詞endword, 再給一個單詞列表wordList。從beginword變換到endword, 每次只能變換一個字母,且變換成的詞屬於wordList。 解決思路: 其實是個變相的BFS,尋找當前集合中相鄰的可以進行變換的單詞,更新當前集合, ...
  • Socket與WebSocket以及http與https重新總結 一.Socket 網路中的Socket是一個 ,而是為了方便使用 或`UDP`而抽象出來的一層 ,可以理解為網路中連接的兩端。通常被叫做套接字介面. 二.WebSocket WebSocket就是其中一種,是為了創建一種雙向通信(全雙 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...