繁体   English   中英

使用Jsoup从页面提取信息

[英]Extracting information from page with Jsoup

我正在尝试使用Jsoup库从此处提取信息。 js元素后无法获取信息。
我用Opera DragonFly在此页面上查看每个td元素。 结果如下:

<td class="t_port">
      <script type="text/javascript">
      //<![CDATA[
        document.write(Socks^GrubMe^51959);
      //]]>
      </script>
     "1080
                "
    </td>

当我使用任何浏览器的查看代码功能时,他都会向我返回相同的代码行,但没有“ 1080”字样-信息就是我想要的。 当我尝试使用Jsoup抓取此页面时,我会得到相同的结果。 js代码大致相似。 喜欢:

document.write(SmallBlind^NineBeforeZero^64881);

要么

document.write(ProxyMoxy^DexterProxy^29182);

或类似的东西

 document.write(Defender^Agile^57721);


了解此服务的策略,我想这是js代码阻止了这些必要的信息,并在以后通过编辑DOM添加“ 1080”类型的信息来动态地加载它。 有任何建议可以获取此信息吗?

PS:这是我的代码:

Document doc = Jsoup.connect(socks4URL).post();
    Elements ips = doc.select("table.proxytbl td.t_ip");
    for (Element e : ips) {
        System.out.println("e is " + e.text());
    }
    Elements ports = doc.select("table.proxytbl td.t_port");
    for (Element e : ports) {
        System.out.println("port is " + e);
    }

第一

我想该站点正是使用这种技术来劝阻像您这样的人抓取他们的信息。 话虽如此,我只是假设您了解这一点并放弃。

第二

该端不通过ajax加载端口信息。 它只是在脚本标签中定义了一些全局变量,并使用按位XOR运算符 (^)计算端口号。 要了解发生了什么,您需要了解XOR运算符,找到在源代码中内联加载的小脚本(提示:div内的id为ind =“ incontent”的script标记)。 这是我得到的,但这可能是动态生成的脚本,因此它可能因调用而异:

<script type="text/javascript">
//<![CDATA[
  BigProxy = 13097;BigGoodProxy = 42249^BigProxy;GrubMe = BigGoodProxy^BigProxy;Defender = 16593^BigGoodProxy;Polymorth = 32164^60129;Xorg = Defender^BigProxy;DexterProxy = Defender^Defender;SmallBlind = 56306^22478;Agile = 7797^61126;Socks = BigProxy^SmallBlind;DontGrubMe = BigProxy^45134;Xinemara = 64225^38807;HttpSocks = Socks^BigGoodProxy;BigBlind = GrubMe^41530;NineBeforeZero = 8868^38743;SmallProxy = HttpSocks^Socks;ProxyMoxy = Polymorth^41915;
//]]>
</script>

现在,您可以解析数据并重新创建具有相同值的变量。 只需解析端口字段并解释一点XOR计算。 例如:

document.write(SmallBlind^BigProxy^47917);

根据上面的脚本SmallBlind = 35900和BigProxy = 13097(评估后!)

所以微积分是35900 ^ 13097 ^ 47917 = 1080

第三

如果您非常需要它们,只需订阅让您准备使用袜子代理列表的众多服务之一:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM