【问题标题】:How to programmatically click a button on a webpage in bot (web crawler)?如何以编程方式单击机器人(网络爬虫)中网页上的按钮?
【发布时间】:2014-05-21 17:16:43
【问题描述】:

我想构建一个机器人 - 网络爬虫 - 来收集电话号码。

但我有一个问题:要查看电话号码,用户必须单击“显示”之类的内容。 我该如何解决这个问题?

【问题讨论】:

  • 取决于此“显示”按钮的工作方式。不过,通常爬虫不会点击按钮。大多数时候,他们只是解析页面的来源并跟踪链接。

标签: c# web-crawler bots


【解决方案1】:

您要查找的所有数据都来自某种后端,因此,如果您在浏览该页面时查看浏览器的开发人员工具,通常可以找出调用脚本以获取数据。

这可能会变得更难(这就是一些网站保护自己免受抓取的原因)。通常,如果您处于这种情况,您所做的事情并不完全合法或良好。但从技术上讲,它非常有趣,所以就这样吧。

最好的方法是在真正的浏览器(如 PhantomJS 或 Chrome)中运行网站,并使用 Webdriver 等框架来模拟浏览器交互。这样您通常可以提取大部分数据。

如果您发现您的 ip 被阻止,您可以使用 Tor 并动态使用多个实例来访问该网站...但请确保您很好地询问网站所有者是否允许您这样做。

【讨论】:

    【解决方案2】:

    检查单击按钮的行为。它是否调用 Javascript 函数?这会对后端进行 HTTP 调用吗?如果是这样,您的机器人应该执行该调用而不是屏幕抓取第一页。如果不是,它是否只是使用页面的 DOM 来在屏幕上显示一个项目?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2023-03-13
      相关资源
      最近更新 更多