【问题标题】:How to extract text using javascript on client side如何在客户端使用javascript提取文本
【发布时间】:2014-06-28 08:02:31
【问题描述】:

我想开发一个脚本,当他输入我们网站的网址时,它会从客户端提取某些信息。

例如-:如果他输入网址 www.example.com,代码会启动并从客户端提取某些信息。对于每个用户来说,它会有所不同,例如 facebook 电子邮件等。

所以我一直在研究这个选项,并认为这几乎是不可能的,除非我有某种 javascript 代码,每当他访问该站点时,它就会在客户端执行。我也在研究 Jsoup、selenium 等库等等,但我猜它们只是在本地执行,并没有解决我的目的。

我要提取的文本在 iframe 中,然后在表格中。所以是否可以编写我包含在 index.php 页面中并在客户端站点上执行的代码(javascript 或其他内容),提取信息并将结果存入数据库?

场景是,如果用户已经在同一个浏览器上登录到 facebook,那么当他访问我的网站时,它会自动显示他与 facebook 相关的电子邮件 id。所以我想提取那个电子邮件 id。有什么建议吗?

编辑-->>

我正在尝试使用以下代码移动到框架,然后获取内容,但它返回的是空内容文档。

var iframe = document.evaluate('//iframe[contains(@src, \"//my.leadpages.net/forms/5620062778032128/5654100301578240/5645914630782976/html/?lp-in-iframe=1\")]',document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).contentDocument;alert(iframe);

另外,如果你能指导我如何移动到框架,然后通过节点获取它的内容。Iframe 没有 ID、名称等,所以我使用了 xpath 方式。它正在检测框架作为结果 XpathResult 但我是不知道如何进入它,然后为各种节点提取文本。这必须在 Javascript 中。

【问题讨论】:

  • @DavidPostill 场景是如果用户已经在同一个浏览器上登录到 facebook,那么当他访问我的网站时,它会自动显示他与 facebook 相关的电子邮件 ID。所以我想提取该电子邮件id.有什么建议吗?
  • 如果我访问您的网站,您会自动检索我的 Facebook 登录电子邮件吗?不,谢谢!执行此操作的正确方法是要求用户使用他们的 facebook 帐户登录到您的网站。请参阅Using Facebook Login with Existing Login Systems 了解更可接受的方法(让用户可以控制接下来发生的事情)
  • @DavidPostill 如果用户在同一个浏览器上维护了一个 facebook 会话,那么该站点会自动知道用户的 facebook 电子邮件(我不知道如何可能是一些 oAuth 等)。当用户单击按钮时然后它会在 iframe 中显示一个弹出窗口,向用户显示他的 Facebook 名称和电子邮件,并要求他确认他想登录 acc。我想要的是已经是他们的。
  • @AnishSharma 您是否在提供的代码中检查了link?您在谈论 facebook,但它与此链接无关。我看到一个空表格。但是,如果该 iframe 已经在页面/位置上有内容 a) 为什么要将其注入另一个页面/位置 b) 以获取相同的内容?!

标签: java javascript php xpath web-scraping


【解决方案1】:

我很确定浏览器不会让您访问 iframe 的内容。 此外,您试图实现的这件事对我来说听起来很阴暗。为什么要获取用户未明确提供给您的数据?

【讨论】:

  • 这种情况是,如果用户已经在同一个浏览器上登录了 facebook,那么当他访问我的网站时,它会自动显示他与 facebook 相关的电子邮件 ID。所以我想提取那个电子邮件 ID。有什么建议吗?
  • @pctr 当然我可以访问 iframe 的内容,或者 html 的任何部分(源页面)。
【解决方案2】:

好吧,为了做一些与每个用户相关的和特定的事情,你需要在你的服务器端有一个会员系统;换句话说,您的用户必须登录。这是一个相当复杂的系统,而不是一小段代码,但在伪代码中它可能如下所示

// on you server side, using PHP, C#, Java ...
if(is_current_user_logged_in(some_user)){
    // at this point you know who's the user so
    // do whatever you need
}

【讨论】:

  • 这种情况是,如果用户已经在同一个浏览器上登录了 facebook,那么当他访问我的网站时,它会自动显示他与 facebook 相关的电子邮件 ID。所以我想提取那个电子邮件 ID。有什么建议吗?
  • 如果您需要一种正确/干净的方式来做到这一点,也许这个post 可以帮助您。但是您的评论对我来说听起来像是您想从源页面/html(在这种情况下)中提取/废弃该数据;如果是这样,请向我展示写入该数据的 html 代码片段。
  • 如果用户在同一个浏览器上维护了一个 facebook 会话,那么该网站会自动知道用户的 facebook 电子邮件(我不知道如何可能是一些 oAuth 等)。当用户点击一个按钮然后它显示一个 iframe 中的弹出窗口,向用户显示他的 Facebook 名称和电子邮件,并要求他确认他要登录 acc。我想要的是已经是他们的。
【解决方案3】:

这样做的正确方法是要求用户使用他们的 facebook 帐户登录到您的网站。

请参阅Using Facebook Login with Existing Login Systems 了解更可接受的方法(让用户可以控制接下来发生的事情)

【讨论】:

  • 如果用户在同一个浏览器上维护了一个 facebook 会话,那么该网站会自动知道用户的 facebook 电子邮件(我不知道如何可能是一些 oAuth 等)。当用户点击一个按钮然后它显示一个 iframe 中的弹出窗口,向用户显示他的 Facebook 名称和电子邮件,并要求他确认他要登录 acc。我想要的是已经是他们的。
猜你喜欢
  • 2011-06-24
  • 2011-05-29
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多