java - Jsoup 获取隐藏邮件

标签 java jsoup

我正在解析电子邮件数据的页面。我如何获得隐藏的电子邮件 - 这是使用 JavaScript 生成的。这是我正在解析的页面 如果您查看 html 源代码(使用 Firebug 或其他工具),您会发现它是在名为 sobi2Details_field_email 的 div 中生成的链接标记,并设置为 display:none 。 这是我现在的代码,但问题出在电子邮件上

 doc = Jsoup.connect(strLine).get();
 Element e5=doc.getElementById("sobi2Details_field_email");

if(e5!=null)
 {
 emaildata=e5.child(1).absUrl("href").toString();

 }
  System.out.println (emaildata);

最佳答案

您需要执行几个步骤,因为 Jsoup 不允许您执行 JavaScript。 我对其进行了逆向工程,结果如下:

public static void main(final String[] args) throws IOException
{
    final String url = "http://poslovno.com/kategorije.html?sobi2Task=sobi2Details&catid=71&sobi2Id=20001";
    final Document doc = Jsoup.connect(url).get();
    final Element e5 = doc.getElementById("sobi2Details_field_email");

    System.out.println("--- this is how we start");
    System.out.println(e5 + "\n\n\n\n");

    // remove the xml encoding
    System.out.println("---Remove XML encoding\n");
    String email = org.jsoup.parser.Parser.unescapeEntities(e5.toString(), false);
    System.out.println(email + "\n\n\n\n");

    // remove the concatunation with ' + '
    System.out.println("--- Remove concatunation (all: ' + ')");
    email = email.replaceAll("' \\+ '", "");
    System.out.println(email + "\n\n\n\n");

    // extract the email address variables
    System.out.println("--- Remove useless lines");
    Matcher matcher = Pattern.compile("var addy.*var addy", Pattern.MULTILINE + Pattern.DOTALL).matcher(email);
    matcher.find();

    email = matcher.group();
    System.out.println(email + "\n\n\n\n");

    // get the to string enclosed by '' and concatunate
    System.out.println("--- Extract the email address");
    matcher = Pattern.compile("'(.*)'.*'(.*)'", Pattern.MULTILINE + Pattern.DOTALL).matcher(email);
    matcher.find();

    email = matcher.group(1) + matcher.group(2);
    System.out.println(email);

}

关于java - Jsoup 获取隐藏邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18343773/

相关文章:

java - JSoup 抓取不断变化的值(value)

java - Jsoup,从网站中提取链接、图像。运行时异常

java - 在 Clojure 中使用 JSoup 解析字符串

java - 如何向所有非空值添加双引号,并且不在 Spark Java 的标题上添加双引号

java - 删除ArrayList中每个索引的前导空格

java - dom4j XPath 不是节点类型

jsoup - 如何使用jsoup整理html

java - 如何对 Jsoup 文档进行转义?

java - 类型无法解析或不是字段

Java:如何使用方法更改实例变量的值