Tag: screen scraping

C#库类似于HtmlUnit

我需要编写独立的应用程序,它将“浏览”外部资源。 C#中有lib自动处理cookie并支持JavaScript(我认为不需要通过JS)吗? 主要目标是保持会话活动并提交表单,以便我可以在登录后通过多步骤注册过程或“浏览”网站。 我查看了Html Agility Pack,但看起来它不包含我需要的function – 表单提交或cookie支持。 谢谢,Artem。

用C#屏幕抓取HTML

我已经完成了屏幕抓取我们的一个遗留Web应用程序以从代码中提取某些数据的任务。 数据被格式化并且“应该”每次都显示完全相同。 我只是不确定如何去做这件事。 这是一个包含页眉和页脚导航的完整html文件,但在这一切的中间是我需要的数据。 我需要提取公司名称值,联系人姓名,电话,电子邮件地址等。 以下是代码的示例: …html above here ABC INDUSTRIES Contact Person  :  Joe Smith Phone Number  :  555-555-5555 E-mail Address  :  joe@joe.com more… 屏幕上有更多代码在不同的表结构中,我还需要提取。

Web浏览C# – 库,工具等 – 像Perl中的Mechanize一样吗?

寻找与Mechanize for .NET类似的东西…… 如果您不知道Mechanize是什么.. http://search.cpan.org/dist/WWW-Mechanize/ 我会在这里保留一份建议清单。 浏览/发布/屏幕抓取的任何内容(WebRequest和WebBrowser控件除外)。 解析 HTMLAgilityPack – http://www.codeplex.com/htmlagilitypack Web应用程序测试 WatiN – Web应用程序测试框架(.NET) – http://watin.sourceforge.net/ Selenium – http://seleniumhq.org/ 测试设计canvas的艺术 – 花钱 工具 适用于Firefox的Firebug 适用于IE的Internet Explorer开发人员工具栏 Chrome也有 注意 WatiN接近我正在寻找的东西,除了它打开一个浏览器,这是令人讨厌和令人敬畏的同时。 取决于你在做什么。

为什么这个HtmlAgilityPack操作在确实存在匹配元素时无效?

我使用以下代码获取“InvalidOperationException> Message = Sequence不包含匹配元素”: private void buttonLoadHTML_Click(object sender, EventArgs e) { GetParagraphsListFromHtml(@”C:\PlatypiRUs\fitt.html”); } // This code adapted from Kirk Woll’s answer at http://stackoverflow.com/questions/4752840/html-agility-pack-c-sharp-paragraph- parsing-problem public List GetParagraphsListFromHtml(string sourceHtml) { var pars = new List(); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(sourceHtml); foreach (var par in doc.DocumentNode .DescendantNodes() .Single(x => x.Id == “body”) .DescendantNodes() .Where(x => x.Name […]

Web浏览器行为问题

我试图用.NET C#自动化Webbrowser。 问题是控件或我应该说IE浏览器在不同的计算机上表现得很奇怪。 例如,我点击链接并在第一台计算机上填充Ajax弹出窗体,如下所示,没有任何错误: private void btn_Start_Click(object sender, RoutedEventArgs e) { webbrowserIE.Navigate(“http://www.test.com/”); webbrowserIE.DocumentCompleted += fillup_LoadCompleted; } void fillup_LoadCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) { System.Windows.Forms.HtmlElement ele = web_BrowserIE.Document.GetElementById(“login”); if (ele != null) ele.InvokeMember(“Click”); if (this.web_BrowserIE.ReadyState == System.Windows.Forms.WebBrowserReadyState.Complete) { web_BrowserIE.Document.GetElementById(“login”).SetAttribute(“value”, myUserName); web_BrowserIE.Document.GetElementById(“password”).SetAttribute(“value”, myPassword); foreach (System.Windows.Forms.HtmlElement el in web_BrowserIE.Document.GetElementsByTagName(“button”)) { if (el.InnerText == “Login”) { el.InvokeMember(“click”); } } web_BrowserIE.DocumentCompleted […]