2016-01-17 46 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”);

    相关问题