如何通过linux命令递归地从网站站点中提取电子邮件

时间:2014-04-10 07:31:49

标签: linux email recursion grep wget

我想以递归方式提取电子邮件表单网站,以便如果某个网站有其他电子邮件链接,它也会遍历这些网页并提取email-id:s。

我为深度级别2执行了以下操作:

wget -r -l 2 -O - some site name |grep -E -o "[a-z0-9.]+@[a-z0-9.-]+.[a-z]{2,4}">>some.txt 

但是当我执行此命令时,它只会创建一个文件" some.txt"并且不会提取任何email-id:s。

2 个答案:

答案 0 :(得分:1)

为什么不在本地执行递归wget并存储该站点,然后在本地文件系统上的站点上执行递归grep(grep -r)?只需在脚本末尾添加一个rm -Rf即可在完成后删除该站点。

答案 1 :(得分:0)

根据使用PHP: 第1点)。开发人员以HTML实体格式添加电子邮件ID(rish)HTML实体:

第2点)。电子邮件写在href =“mailto:your@example.com”上。因此,我们可以将此作为常规表达。

<?php
    $str = '<div class="call-to-action ">
    <a title="Email" class="contact contact-main contact-email " 
    href="mailto:info@canberraeyelaser.com.au?subject=Enquiry%2C%20sent%20from%20yellowpages.com.au&amp;
    body=%0A%0A%0A%0A%0A------------------------------------------%0AEnquiry%20via%20yellowpages.com.au%0Ahttp%3A%2F%2Fyellowpages.com.au%2Fact%2Fphillip%2Fcanberra-eye-laser-15333167-listing.html%3Fcontext%3DbusinessTypeSearch" 
    rel="nofollow" data-email="info@canberraeyelaser.com.au">
    <span class="glyph icon-email border border-dark-blue with-text"></span><span class="contact-text">Email</span>
    <a href="mailto:&#114;&#105;&#115;&#104;&#97;&#98;&#104;&#100;&#117;&#98;&#101;&#121;&#50;&#48;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">
    </a>
    </div>';

// $str = file_get_contents(http://example.com) ; (to get emails from URL in place of file_get_contents i use to prefer CURL) .

     $str = html_entity_decode($str);

    $regex = "/mailto:([^?]*)/";
    if ($rex = preg_match_all($regex, $str,$matches_out)) {

        echo "Found a match!";
        echo "<pre>";
        var_dump($matches_out[0]);
    } else {
        echo "The regex pattern does not match. :(";
    }

    ?>