问题标签 [screen-scraping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1517 浏览

.net - 如何将 cookie 传递到外部 Web 浏览器?

我正在编写一个应用程序,它需要向使用表单身份验证的网站打开浏览器窗口(可能会坚持使用 IE)。诀窍是他们需要已经过身份验证,以节省时间,因为我们需要进入的网站数量众多。(最终我会在屏幕上抓取它们并处理数据......但我仍然需要让身份验证部分正常工作,以便他们可以在需要时点击进入真实站点。)

我已经完成了表单身份验证部分,因为我可以使用 HttpWebRequest 来获取 html 并将其传递给浏览器。但是我无法让它将 cookie 传输到客户端浏览器,以便它可以访问实际的网站。

我正在获取 System.Net.Cookies 进行身份验证,我尝试将它们复制到 System.Web.HttpCookies 并将它们添加到 Response 对象中。如果我在页面上放置一个链接或使用 Response.Redirect 访问它不起作用的网站,它就好像用户没有经过身份验证一样。

任何人都知道我将如何做到这一点?

这是当前代码,以防更清楚:

0 投票
9 回答
3992 浏览

algorithm - 识别网页物理地址的算法

识别 HTML 页面上的结构化数据的最佳算法是什么?

例如,Google 会识别电子邮件中的家庭/公司地址,并提供该地址的地图。

0 投票
2 回答
1087 浏览

api - Hubspot 之类的网站如何跟踪入站链接?

所有这些类型的网站都只是非法抓取谷歌或其他搜索引擎吗?
据我所知,没有“合法”的方式可以为商业网站获取这些数据。雅虎!api ( http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html ) 仅用于非商业用途,Yahoo! 老板不允许自动查询等。有
什么想法吗?

0 投票
2 回答
236 浏览

algorithm - 将 RSS 条目映射到 HTML 正文 w。非精确搜索

你将如何解决这个问题?

您正在抓取博客的 HTML。博客的一些 HTML 是博客文章,一些是格式、侧边栏等。如果有的话,您希望能够分辨 HTML 中的哪些文本属于哪个文章(即永久链接)。

我知道你在想什么:你可以只看 RSS 而完全忽略 HTML!但是,RSS 通常只包含非常短的摘录或删除您可能感兴趣的链接。您希望通过同时使用同一页面的 HTML 和 RSS 从本质上打败 RSS 的摘录。

RSS 条目如下所示:

HTML 格式的博客文章如下所示:

因此 HTML 页面包含相同的字段,但预先不知道永久链接的位置,并且这些字段将被一些主要是 HTML 和空白的噪声文本分隔,但也可能包含一些额外的元数据,例如“由 Johnny 发布"或日期或类似的东西。如下所述,文本在 HTML 和 RSS 中也可能略有不同。

附加规则/注意事项:

  • 标题可能不是唯一的。这种情况发生的频率比您想象的要多。我见过的例子:“周一综述”、“TGIF”等。
  • 标题甚至可以留空。
  • RSS 中的摘录也是可选的,但假设必须至少有非空白摘录或非空白标题
  • RSS 摘录可能包含完整的帖子内容,但更有可能包含帖子正文开头的简短摘录
  • 假设永久链接必须是唯一的,并且在 HTML 和 RSS 中必须相同。
  • RSS 和 HTML 中的标题、摘录和帖子正文的格式可能略有不同。例如:
    • RSS 可能在标题或正文中去除了 HTML,或者在 HTML 页面上可以添加更多 HTML(例如用某些东西包围文章正文的第一个字母)或格式可能略有不同
    • 文本的编码可能略有不同,例如在 RSS 中是 utf8,而在 HTML 中的非 ascii 字符总是使用 & 号编码。但是,假设这是英文文本,非 ascii 字符很少见。
    • 可能存在编码错误的 Windows-1252 可怕性。对于像弯引号这样的符号字符,这种情况经常发生。但是,可以安全地假设大部分文本都是 ascii。
    • 可能会在任何一个方向上折叠,尤其是在标题中。因此,他们可以将 HTML 页面中的标题全部大写,但不能在 RSS 中。
  • 假定 RSS 提要和 HTML 页面中的条目数不同。要么有更多或更少的旧条目。我们只能期望只获得出现在两者中的那些帖子。
  • RSS 可能会滞后。HTML 页面中可能有一个新条目尚未出现在 RSS 提要中。如果 RSS 通过 Feedburner 进行联合,则可能会发生这种情况。同样,我们只能期望解析那些同时出现在 RSS 和 HTML 中的帖子。
  • 帖子的正文可以很短也可以很长。

100% 准确率不是限制。但是,越准确越好。

嗯,你会怎么做?

0 投票
1 回答
28317 浏览

c# - 在 C# 中对 Windows 应用程序进行屏幕抓取

我需要从 Windows 应用程序中抓取数据以在另一个程序中运行查询。有谁知道我在 .NET 中执行此操作的一个很好的起点?

0 投票
9 回答
2747 浏览

web-crawler - 如何保护/监控您的网站不被恶意用户抓取

情况:

  • 内容受用户名/密码保护的网站(并非全部受控,因为他们可以是试用/测试用户)
  • 由于用户名/密码限制,普通搜索引擎无法获取
  • 恶意用户仍然可以登录并将会话 cookie 传递给“wget -r”或其他东西。

问题是什么是监控此类活动并对其做出响应的最佳解决方案(考虑到网站政策是不允许抓取/抓取的)

我可以想到一些选择:

  1. 设置一些流量监控解决方案来限制给定用户/IP 的请求数量。
  2. 与第一点相关:自动屏蔽部分用户代理
  3. (邪恶:))设置一个隐藏链接,当访问该链接时会注销用户并禁用他的帐户。(大概普通用户不会访问它,因为他不会看到它来点击它,但机器人会抓取所有链接。)

对于第 1 点,您是否知道已经实施的良好解决方案?有什么经验吗?一个问题是,对于非常活跃的人类用户,可能会出现一些误报。

对于第 3 点:你认为这真的很邪恶吗?或者你看到它有任何可能的问题吗?

也接受其他建议。

0 投票
4 回答
13669 浏览

python - 程序化表单提交

我想抓取网页的内容。内容是在该网站上的表格填写并提交后生成的。

我已阅读有关如何抓取最终结果内容/网页的信息 - 但如何以编程方式提交表单?

我正在使用 python 并已阅读我可能需要获取带有表单的原始网页,解析它,获取表单参数,然后执行 X?

谁能指出我正确的方向?

0 投票
21 回答
23308 浏览

screen-scraping - 防止屏幕刮擦

继我关于屏幕抓取合法性的问题之后,即使它是非法的,人们仍然会尝试,所以:

可以采用哪些技术机制来防止或至少抑制屏幕刮擦?

哦,只是为了笑容和让生活变得困难,保留搜索引擎的访问权限可能会很好。我很可能在这里扮演魔鬼的拥护者,但有一个严重的潜在问题。

0 投票
5 回答
576 浏览

javascript - 有谁知道可以从 JavaScript 调用以创建和保存桌面屏幕截图的无 GUI 应用程序?

虽然这个主题听起来像是我想做一些狡猾的事情,但我不是;我维护一个由数百家电话运营商使用的内部网站,并希望添加以下功能:

我想在所有网页的标题中添加一个控件,该控件将捕获整个桌面的图像并将图像作为文件保存到共享网络驱动器,以帮助解决生产问题。此屏幕捕获应用程序将由 JavaScript 调用。

我在这个站点上研究了许多与捕获屏幕截图有关的线程,并且所有提供的应用程序都无法通过以下两种方式之一满足我的需求:

  1. 屏幕捕获应用程序有一个弹出的 GUI,用户可以调整某种捕获控件的大小或与窗口交互以进行捕获。用户不是很懂计算机,不能信任正确使用“弹出式”应用程序 - 并且不可能强制他们使用通用文件命名约定保存图像文件。我希望用户在网站上按下单个 UI 控件并让 JavaScript 调用以获取屏幕截图并保存图像,而无需任何进一步的用户交互。

  2. 一些自动化应用程序通过将 HTML 重新发布到站点并将各个 HTML 元素“重新组合”成图像来保存 HTML。这将不起作用,因为操作员输入的输入数据需要在图像中,该站点使用 AJAX,因此网页的视觉“状态”将与从 POST 重新获得的不同,并且某些应用程序尝试与我们的(安全)网站交互时遇到(活动目录)安全问题。

如果没有可以满足此需求的应用程序,我将在 C# 中滚动我自己的控件。但我宁愿获得第三方控制。所以我不必支持自己对生活的控制。:-)

0 投票
5 回答
2359 浏览

php - 使用 PHP + SimpleXML 抓取...我可以抓取图像但不能抓取原始文本?

我正在尝试从网站上获取特定的原始文本。通过使用这个站点和其他资源,我学会了如何使用 simpleXML 和 xpath 获取特定图像。

然而,相同的方法似乎不适用于抓取原始文本。这是现在不起作用的东西。

现在,当我抓取图像时,该 commcount 对象将返回一个数组,其中包含其中某处的图像源。

在这种情况下,我希望该对象返回包含在“storyCommentCountNumber”div 中的原始文本。但该文本似乎不包含在对象中,只是 Div 的名称。

我究竟做错了什么?我可以看到这种方法仅用于抓取 HTML 元素及其内部的位,而不是原始文本。如何获取该 div 中的文本?

谢谢!