【问题标题】:Grab details from web page从网页获取详细信息
【发布时间】:2013-07-20 07:17:23
【问题描述】:

我需要编写一个用于抓取网页内容的 C# 代码。步骤如下所示

  1. 浏览到登录页面
  2. 我有用户名和密码,以编程方式提供并登录
  3. 那么你在详细页面
  4. 您必须在那里获取一些信息,例如(产品 ID、Des 等)
  5. 然后需要点击(按代码)详细视图
  6. 然后您可以从那里获得该产品的价格
  7. 现在已经完成了,所以我们可以像这样将详细信息行写入文本文件... ABC 打印机::225519::285.00

请帮助我,(即使是VB.Net代码也可以,我可以将其转换为C#)

【问题讨论】:

  • 你真的需要在第5步中点击,还是仅仅获取新页面的url然后下载就足够了?

标签: c# automation webpage autologin


【解决方案1】:

那么WatiN 库可能就是您想要的。基本上,它控制一个网络浏览器(我相信对 IE 和 Firefox 的本机支持,尽管自从我上次使用它以来它们可能已经添加了更多功能)并提供了一种简单的语法,用于以编程方式与该浏览器中的页面元素交互。您只需要这些元素的名称和/或 ID,或者在页面上识别它们的某种独特方式。

【讨论】:

  • 这是一个非常时髦的库,很好的发现——但我认为它需要打开浏览器。使用 C# 内置的类将提供一种更透明的方法来检索和处理数据。
  • 嗨,是的,我下载了那个库。好东西。谢谢你和我分享那个。但我有一个小问题,我想获取数据的网站在登录屏幕上有一个“验证码”。我们可以在这个库中处理它吗?可以显示“验证码”并让用户在 UI 上输入它。如果你有代码示例会更好。
【解决方案2】:

您应该能够使用WebRequest 类检索页面和HTML Agility Pack 从HTML 源中提取元素来实现此目的。

【讨论】:

  • HTML 敏捷包,我必须记下这一点。为答案+1
【解决方案3】:

是的,我下载了那个库。好东西。

感谢您与我分享。但我对那个图书馆有疑问。我要获取数据的网站在登录页面上有一个“验证码”。

如果这可以显示图像并等待我的输入,我可以输入该值。

如果您想要一个示例,我们可以从这个库中实现它吗?

【讨论】:

    【解决方案4】:

    您应该能够通过使用 C# 中的两个类 HttpWebRequest(用于请求网页)和 XmlTextReader(用于解析 HTML/XML 响应)来实现这一点。

    如果您不想使用 XmlTextReader,那么我建议您研究正则表达式,因为它们对于从存在模式的大量文本中提取信息非常有用。

    How to: Send Data Using the WebRequest Class

    【讨论】:

    • (a) HTML 一般不是 XML; (b)you can't parse HTML with regular expressions
    • 但是我如何实现..点击功能..登录我必须点击一个按钮。获得产品的价格我需要点击一个链接并等待获取数据。我认为在这种方法中我们不能做这样的事情,不是吗......??
    • 虽然您可能无法使用 RegEx 解析 HTML,但您可以使用它从已知 HTML 结构的特定部分中提取信息。关于“点击”,这是通过创建您自己的 POST/GET 请求来实现的。当您单击提交按钮时,这两种类型的请求之一将发送到表单目标。您只需找出正在发送的数据并使用 WebRequest 类重新创建该请求。
    猜你喜欢
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 2012-07-06
    • 2014-12-13
    • 1970-01-01
    相关资源
    最近更新 更多