برای بدست آوردن ایمیل های معتبر باید وب سایتهای مختلف را بررسی و مشاهده کنید و از داخل وب سایت ها اقدام به جمع آوری ایمیل نمایید.جمع آوری ایمیل از سایتهای مختلف قطعا کاری سخت و وقت گیر است و علاوه بر صرف زمان نتیجه مطلوبی به دست نمیاید چرا که تعداد ایمیلهایی که جمع آوری میکنید به نسبت زمانی که صرف میکنید جزعی و اندک است!
برای همین ما با نوشتن یک اسکریپت PHP می توانیم این کار را خودکار کنیم و سرعت استخراج ایمیل ها را افزایش بدیم. این جمع آوری ایمیل های یک صفحه توسط PHP می تواند برای اهداف مختلف زیادی مورد استفاده قرار بگیرد.
با استفاده از آموزش استخراج کل email های یک صفحه با php میتوانید ایمیل های موجود در سایتها را جمع آوری کنید! از نکات مثبت این روش, قابلیت راه اندازی در لوکال هاست (تست شده در xampp) و همچنین نیاز نداشتن به دیتابیس می باشد .
البته شما به راحتی می توانید به دیتابیس mysql متصل و تمام ایمیل ها را ذخیره کنید و یا راه دیگر ذخیره سازی در فایل ها است.
روش دیگری استفاده, خودکار کردن ربات جمعاوری ایمیل است که از cron job سرور استفاده کنید و آن را در بازه های مختلف بر روی URL ها دلخواه اجرا و تمام نتایج را به تفکیک ذخیره کنید.
استخراج کل email های یک صفحه با php
در ابتدا یک فرم برای دریافت آدرس صفحه وبسایتی که قصد جمع آوری ایمیل های آن را داریم, ساختیم. همچنین در این فرم به جای صفحه URL , می توانید متن طولانی خود که حاوی ایمیل است را وارد کنید تا به راحتی استخراج کل email ها انجام شود.
سپس بعد از بررسی ارسال یکی از مقادیر بالا محتوای URL را با استفاده از تابع file_get_contents خواندیم و در یک متغییر ذخیره کردیم. (اگر این تابع روی سرور شما کار نکرد و در error_log
ها خطایی مربوط به تابع را دیدید به راحتی می توانید از cURL بهره ببرید)
مرحله بعد استفاده از توابع کار با رشته به منظور دریافت الگوی خاصی از متن که ایمیل می باشد, است . برای همین از تابع preg_match_all
استفاده کردیم تا بتوانیم از عبارت های با قاعده (Regex) به منظور سادگی کار بهره ببریم.
تابع preg_match_all
تمامی ایمیل ها متن یا صفحه دریافتی را پیدا کرده و هر یک را در خانه ای از آرایه $matches
ذخیره می کند.
مرحله آخر کار استخراج کل email های یک صفحه با php نیز استفاده از foreach
به منظور واکشی آرایه $matches
و چاپ کردن هر یک از ایمیل ها در یک خط است. توجه کنید از تابع array_unique
برای جلوگیری از چاپ کردن ایمیل های تکراری استفاده کردیم.
در این مرحله به راحتی می توانید به دیتابیس متصل شده و ایمیل ها را ذخیره کنید و یا اینکه یک فایل بسازید و ایمیل ها را در آنجا ذخیره کنید.(مدیریت فایل ها در php)
کد کامل استخراج کل email های یک صفحه با php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php // www.Netparadis.com $the_url = isset($_REQUEST['url']) ? htmlspecialchars($_REQUEST['url']) : ''; ?> <form method="post"> Please enter full URL of the page to parse (including http://):<br /> <input type="text" name="url" size="65" value="<?php echo $the_url; ?>"/><br /> or enter text directly into textarea below:<br /> <textarea name="text" cols="50" rows="15"></textarea> <br /> <input type="submit" value="Parse Emails" /> </form> <?php if (isset($_REQUEST['url']) && !empty($_REQUEST['url'])) { // fetch data from specified url $text = file_get_contents($_REQUEST['url']); } elseif (isset($_REQUEST['text']) && !empty($_REQUEST['text'])) { // get text from text area $text = $_REQUEST['text']; } // parse emails if (!empty($text)) { $res = preg_match_all( "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $text, $matches ); if ($res) { foreach(array_unique($matches[0]) as $email) { echo $email . "<br />"; } } else { echo "No emails found."; } } ?> |
امیدوارم از آموزش استخراج کل email های یک صفحه با php نهایت استفاده را برده باشید و بتوانید با شخصی سازی اون اسکریپت قوی تری رو ایجاد کنید.
برای دانلود سورس کد کامل این آموزش از باکس دانلود استفاده کنید.
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید
اگر ب جای ایمیل بخوایم لینک هارو استخراج کنیم چطوری ممکنه؟
باید از regex لینک ها استفاده کنید:
https://netparadis.com/regular-expression-regex-php
اگه بخوایم ایمیل هایی که فقط gmail هستند استخراج کنیم باید چکار کنیم
سلام.
این بخش ریجکس در خط ۲۸ رو به gmail تغییر بدید
@([a-z0-9]+([\.-][a-z0-9]+)*)
خیلی مطلب خوبی بود. ممنون از به اشتراک گزاری.
خیلی عالی بود
دستتون درد نکنه
خوشحالیم که مفید واقع شده. موفق باشید.
سلام حسن جان .
ممنون از آموزش های خوبتتون .
استفاده میکنیم از همشون 😍😘
سلام . خوشحالم که آموزش ها مفید واقع میشه . موفق باشید.