2016-01-17 77 views
-1

我想創建一個網頁抓取工具來保存頁面的鏈接。而且我在win應用程序中編寫了這段代碼,並且工作得很好。請幫忙如何通過使用硒來運行firefox來獲取頁面的源代碼?

using System; 
    using System.Collections.Generic; 
    using System.Windows.Forms; 
    using OpenQA.Selenium; 
    using OpenQA.Selenium.Firefox; 
    namespace spammer 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private IWebDriver driver; 
      private void button1_Click(object sender, EventArgs e) 
      { 
       driver = new FirefoxDriver(); 
       driver.Navigate().GoToUrl("http://blogfa.com/members/UsersList.aspx?dir=01"); 
       IList<IWebElement> lis = driver.FindElements(By.CssSelector(".ull > li > a")); 
       string href = null; 
       foreach (IWebElement li in lis) 
       { 
        href += li.GetAttribute("href")+ " "; 
       } 


      } 
     } 
    } 
+0

如果你不想打開瀏覽器,你可以使用'無頭模式' – Paras

+0

如何做到這一點?你能寫樣本代碼嗎? – programmer138200

+0

嘗試'driver = new HtmlUnitDriver()' – Paras

回答

0

無頭瀏覽器可以幫助你,因爲無頭瀏覽器是一個沒有GUI的瀏覽器。 Webdriver主要支持2個無頭瀏覽器:

  1. HTMLUnit - 以下代碼行將幫助您。

import org.openqa.selenium.htmlunit.HtmlUnitDriver;

 DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setJavascriptEnabled(true); 
     driver = new HtmlUnitDriver(capabilities); 
  • PhantomJS - 繼行代碼會幫助你。

    下載phantonJS驅動程序並使用以下代碼段。

    DesiredCapabilities capabilities = new DesiredCapabilities(); 
        capabilities.setJavascriptEnabled(true); 
        capabilities.setCapability("takesScreenshot", true); 
        capabilities.setCapability(
          "PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY", 
          "<Path of phantomJS driver>" 
         ); 
    
    
        driver = new PhantomJSDriver(capabilities); 
    
  • 注:我建議使用PhantomJS,因爲它使結果更精確比較的HtmlUnit。

    0

    WebDriver有一個內置的方法來獲取作爲驅動器的pagesource()。getPageSource();

    另一種方法是使用xpath:driver.getElementByXpath(「body」);

    相關問題