2012-04-15 51 views
27

我是一名正在構建GUI Web抓取應用程序的Python開發人員。最近我決定遷移到.NET框架並在C#中編寫相同的應用程序(這個決定不是我的)。C#(.NET)的無頭瀏覽器?

在Python中,我使用了機械化庫。但是,我似乎無法在.NET中找到任何類似的東西。我需要的是一個可以無頭模式運行的瀏覽器,它可以填寫表單,提交表單等。JavaScript解析器不是必須的,但它會非常有用。

+1

不需要任何其他庫的diy版本:http://stackoverflow.com/a/1995667/17034 – 2012-04-15 13:06:12

+0

http://stackoverflow.com/questions/12059752/run-and-control-browser-control不同線程 這符合我的需求。 – 2012-12-12 04:03:26

回答

29

有一些選項:

  • WebKit.Net(免費)

  • Awesomium
    它是基於瀏覽器/ WebKit和工程就像一個魅力。 有一個免費許可證也是一個商業之一,如果需要的話,你可以買到的源代碼:-)

  • HTML Agility Pack(免費)
    這有助於從HTML等提取信息,並可能是有用的你的情況(可能與HttpWebRequest組合)

+2

謝謝。嗯,糾正我,如果我錯了,但不是所有這些(或至少前兩個)需要創建一個用戶界面(我認爲從閱讀文檔)?我需要的是一個無頭瀏覽器,所以沒有GUI。 – 2012-04-15 11:25:12

+1

@Deusdies NO - 至少第二個(Awesomium)和第三個(HTML Agility Pack)鏈接完全無法工作......第一個鏈接我不確定... – Yahia 2012-04-15 11:26:16

+0

@Deusdies例如Awesomium - 根據文檔(請參閱http://awesomium.com/docs/1_6_5/sharp_api/)它給你像素,如果你想要在UI中渲染它們,如果沒有,則不需要。 – Yahia 2012-04-15 11:29:25

3

你可能會後TrifleJS(目前處於測試階段),或使用.NET WebBrowser類通過窗口的ActiveX/COM API與IE通信類似的東西。

如果您對JavaScript API不感興趣(端口號爲phantomjs),您可能仍然可以使用某些功能,您將基本上使用Internet Explorer的Trident引擎運行完全成熟的瀏覽器(而不是http請求封裝器)的C#代碼庫來解決關鍵概念(自定義標題,Cookie,腳本執行,截圖渲染等)。

請注意,這也可以模擬不同版本的IE,具體取決於您安裝的內容。

enter image description here

7

更多的解決方案:

  • PhantomJS - 全功能的無頭的Web瀏覽器 。經常與Selenium搭配使用,允許您從.NET應用程序訪問瀏覽器。
  • Optimusnuget package) - 輕巧的無頭網頁瀏覽器。它處於測試階段,但對某些情況已足夠。

我曾經使用這兩個進行網絡測試。但它們也適用於網絡抓取。

+1

一個潛在的解決方案的鏈接總是受歡迎的,但請在鏈接上添加上下文,以便您的同伴用戶會有一些想法是什麼以及它爲什麼在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。考慮到僅僅是一個外部網站的鏈接是一個可能的原因[爲什麼以及如何刪除一些答案?](http://stackoverflow.com/help/deleted-answers) – 2016-07-19 11:51:28

+0

謝謝你們。我已經更新了我的答案。 – Knyaz 2016-07-20 15:33:11

+0

特定產品/資源的過度推廣可能被社區視爲**垃圾郵件**。看看[幫助],特別是[用戶期望什麼樣的行爲?](// stackoverflow.com/help/behavior)的最後一節:_避免公開自我推銷_。您可能也對[如何在堆棧溢出做廣告?](// stackoverflow.com/help/advertising)感興趣。 – FrankerZ 2016-07-20 16:56:57