Парсинг зашифрованных email [email_protected]

Discussion in 'Песочница' started by blackice777, 14 Apr 2016.

  1. blackice777

    blackice777 New Member

    Joined:
    11 Apr 2016
    Messages:
    5
    Likes Received:
    2
    Reputations:
    1
    На некоторых сайтах стоит защита от парсинга email, на сайте они отображаются нормально, но в коде выглядят так:

    HTML:
    <p><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="650317040b160d0c1f0406091007250208040c094b060a08">[email&#160;protected]</a></p>
    
    И при парсинге мы получаем вместо email: [email&#160;protected]

    Решил написать функцию на php для преобразования закодированных таким образом email к нормальному виду, может кому пригодится:

    PHP:
        function emailDecode($email_encoded){
            for(
    $e ''$r hexdec('0x' substr($email_encoded02)), $n 2strlen($email_encoded) - $n$n += 2){
                
    $e .= '%' substr('0' dechex(hexdec('0x' substr($email_encoded$n2)) ^ $r), -2);
            }
            return 
    urldecode($e);
        }
    Пример работы при использовании simple_html_dom:
    PHP:
    <?php
        
    require_once('/simplehtmldom_1_5/simple_html_dom.php');
        
    $html file_get_html('htpp://сайт');
        
    $email_encoded $html->find('.__cf_email__'0)->getAttribute('data-cfemail');
        
    $email emailDecode($email_encoded);
        die(
    $email);

        function 
    emailDecode($email_encoded){
            for(
    $e ''$r hexdec('0x' substr($email_encoded02)), $n 2strlen($email_encoded) - $n$n += 2){
                
    $e .= '%' substr('0' dechex(hexdec('0x' substr($email_encoded$n2)) ^ $r), -2);
            }
            return 
    urldecode($e);
        }
     
    #1 blackice777, 14 Apr 2016
    Last edited: 14 Apr 2016
    kaskad and vylegzhanin like this.