PHP網(wǎng)頁(yè)抓取之抓取百度貼吧郵箱數(shù)據(jù)代碼分享
百度貼吧大家都經(jīng)常逛,去逛百度貼吧的時(shí)候,經(jīng)常會(huì)看到樓主分享一些資源,要求留下郵箱,樓主才給發(fā)。
對(duì)于一個(gè)熱門(mén)的帖子,留下的郵箱數(shù)量是非常多的,樓主需要一個(gè)一個(gè)的去復(fù)制那些回復(fù)的郵箱,然后再粘貼發(fā)送郵件,不是被折磨死就是被累死。無(wú)聊至極寫(xiě)了一個(gè)抓取百度貼吧郵箱數(shù)據(jù)的程序,需要的拿走。
程序?qū)崿F(xiàn)了一鍵抓取帖子全部郵箱和分頁(yè)抓取郵箱兩個(gè)功能,界面懶得做了,效果如下:
老規(guī)矩,直接貼源碼
<?php $url2=""; $page=""; if($_GET['url2']==""){ $url2="http://tieba.baidu.com/p/2314539885?pn=1"; }else{ $url2=$_GET['url2']; } if($_GET['page']==""){ $page="1"; }else{ $page=$_GET['page']; } ?> <form action="" method="get"> <input type="hidden" value="getAll" name="type" /> <table> <tr> <td>帖子鏈接:</td><td><input type="text" name="url" value="http://tieba.baidu.com/p/2314539885" style="width:300px;" /></td> </tr> <tr> <td>總頁(yè)數(shù):</td><td><input type="text" name="page" style="width:300px;" value="<?php echo $page;?>" /></td> </tr> <tr> <td colspan=2><input type="submit" value="抓取全部郵箱數(shù)據(jù)" /></td> </tr> </table> </form> <form action="" method="get"> <input type="hidden" value="getNow" name="type" /> <table> <tr> <td>帖子鏈接:</td><td><input type="text" name="url2" value="<?php echo $url2;?>" style="width:300px;" /></td> </tr> <tr> <td colspan=2><input type="submit" value="抓取當(dāng)前頁(yè)面郵箱數(shù)據(jù)" /></td> </tr> </table> </form> <?php if($_GET['type']!=""){ $counts=0; if($_GET['type']=="getAll"){ $pages=$_GET['page']; $url = $_GET['url']; for($i=0;$i<$pages;$i++){ $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE); $texts = curl_exec($ch2); curl_close($ch2); $dat=getEmail($texts); for($j=0;$j<count($dat);$j++){ echo $dat[$j]."<br />"; $counts++; } } }else if($_GET['type']=="getNow"){ $url = $_GET['url2']; $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE); $texts = curl_exec($ch2); curl_close($ch2); $dat=getEmail($texts); for($i=0;$i<count($dat);$i++){ echo $dat[$i]."<br />"; $counts++; } } echo '<h2>共采集到數(shù)據(jù):'.$counts.'條</h2>'; } function getEmail($str){ $pattern = "/([a-z0-9\-_\.]+@[a-z0-9]+\.[a-z0-9\-_\.]+)/"; preg_match_all($pattern,$str,$emailArr); return $emailArr[0]; } ?>
相關(guān)文章
Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖
這篇文章主要為大家詳細(xì)介紹了如何使用?Python?中的?Pandas?和?Matplotlib?庫(kù)創(chuàng)建一個(gè)柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表,感興趣的可以了解一下2023-11-11Python返回?cái)?shù)組/List長(zhǎng)度的實(shí)例
今天小編就為大家分享一篇Python返回?cái)?shù)組/List長(zhǎng)度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python Pandas高級(jí)教程之時(shí)間處理
我們發(fā)現(xiàn)關(guān)于時(shí)間日期的簡(jiǎn)單計(jì)算很多功能都是datetime庫(kù)提供的,那么pandas有沒(méi)有提供跟日期時(shí)間有關(guān)的函數(shù),通過(guò)下面文章來(lái)了解下,這篇文章主要給大家介紹了關(guān)于Python Pandas高級(jí)教程之時(shí)間處理的相關(guān)資料,需要的朋友可以參考下2021-10-10python 實(shí)現(xiàn)目錄復(fù)制的三種小結(jié)
今天小編就為大家分享一篇python 實(shí)現(xiàn)目錄復(fù)制的三種小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12如何利用Python提取pdf中的表格數(shù)據(jù)(附實(shí)戰(zhàn)案例)
從PDF表格中獲取數(shù)據(jù)是一項(xiàng)痛苦的工作,下面這篇文章主要給大家介紹了關(guān)于如何利用Python提取pdf中的表格數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Python批量獲取并保存手機(jī)號(hào)歸屬地和運(yùn)營(yíng)商的示例
這篇文章主要介紹了Python批量獲取并保存手機(jī)號(hào)的歸屬地和運(yùn)營(yíng)商的示例,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下2020-10-10pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Pycharm報(bào)錯(cuò)Non-zero?exit?code?(2)的完美解決方案
最近在使用pycharm安裝或升級(jí)模塊時(shí)出現(xiàn)了錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于Pycharm報(bào)錯(cuò)Non-zero?exit?code?(2)的完美解決方案,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06python 如何用terminal輸入?yún)?shù)
這篇文章主要介紹了python 如何用terminal輸入?yún)?shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05