簡體   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