2

我在 C# 中构建了一个简单的应用程序,该应用程序将新链接发布到 google+ 帐户,但它正在启动实际的浏览器本身。我对 C#、Python、PHP 语言甚至其他语言都很好。

我不能使用 C# WebClient 类,因为许多交互都是基于 JS 的,所以我需要以某种方式模拟浏览器。

这是我的硒 C# 代码,因此您可以理解我想要实现的目标。

static void Main(string[] args)
{
    IWebDriver driver;
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    driver = new FirefoxDriver();
    driver.Navigate().GoToUrl("https://accounts.google.com/ServiceLoginAuth");
    driver.FindElement(By.Name("Email")).SendKeys("MYEMAIL");
    driver.FindElement(By.Name("Passwd")).SendKeys("MYPASSWORD");
    driver.FindElement(By.Name("signIn")).Click();
    driver.Navigate().GoToUrl("https://plusone.google.com/_/+1/confirm?hl=en&url=http://site.com/");
    System.Threading.Thread.Sleep(10000);
    driver.FindElement(By.ClassName("e-U-a-fa")).Click();
    Console.WriteLine("Done!");
    Console.ReadLine();
}
4

3 回答 3

2

有一个无头浏览器项目已经存在,但它不支持名为 simplebrowser 的 JavaScript。如果这是可以接受的,您可以获取该浏览器项目,然后您必须对其进行一些自定义工作。设置该浏览器以在 C# 中实现 IWebDriver 接口。解决所有的休息。一旦你让它编译,那么你应该能够将 IWebdriver 实例化为一个新的 SimpleBrowser。

IWebDriver driver = new SimpleBrowser();

我并不是说这不会是一些工作,但您将拥有一个完全可定制的无头浏览器,它使用 C# 但是开源的。这是简单浏览器的来源。

https://github.com/axefrog/SimpleBrowser

于 2012-03-02T21:44:45.900 回答
0

您可以使用 Web 浏览器 winforms 控件并将脚本注入其中。

于 2012-03-02T21:07:34.983 回答
0

这看起来像是 Ruby 库capybara-webkit(https://github.com/thoughtbot/capybara-webkit) 或我自己的小型 Python 抓取库dryscrape的完美用例,它基于前者:)

两者都使用相同的 C++ 后端来创建基于 QtWebkit 的内存中无头浏览器。不过,我只在 Linux 上对其进行了测试,但它也应该在 Windows 上进行编译。至少人们已经用 capybara-webkit 做到了。

于 2012-03-02T21:10:59.523 回答