ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して Baidu Tieba メールボックス データをキャプチャする
PHP を使用して Baidu Tieba メールボックス データをキャプチャします
注: このプログラムは、Baidu Tieba マーケティングを行っている友人に非常に適している可能性があります。
Baidu Tieba にアクセスすると、投稿者がいくつかのリソースを共有し、投稿者がリソースを送信する前に電子メール アドレスを要求しているのをよく見かけます。
人気のある投稿の場合、返信メールボックスが大量に残っているため、作成者は返信メールボックスを 1 つずつコピーして貼り付けて送信する必要があります。死ぬほど苦しむか、疲れ果てるかのどちらかです。私はとても退屈だったので、Baidu Tieba メールボックス データをキャプチャして必要なものを取り出すプログラムを書きました。
このプログラムは 2 つの機能を実装しています。1 回のクリックで投稿のすべてのメールボックスを取得する機能と、ページ内のメールボックスを取得する機能です。そのインターフェースは面倒で、その効果は次のとおりです。
古いルール、ソースコードを直接投稿
<?<span style="color: #000000;">php</span><span style="color: #800080;">$url2</span>=""<span style="color: #000000;">;</span><span style="color: #800080;">$page</span>=""<span style="color: #000000;">;</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$_GET</span>['url2']==""<span style="color: #000000;">){ </span><span style="color: #800080;">$url2</span>="http://tieba.baidu.com/p/2314539885?pn=1"<span style="color: #000000;">;}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$url2</span>=<span style="color: #800080;">$_GET</span>['url2'<span style="color: #000000;">];}</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$_GET</span>['page']==""<span style="color: #000000;">){ </span><span style="color: #800080;">$page</span>="1"<span style="color: #000000;">;}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$page</span>=<span style="color: #800080;">$_GET</span>['page'<span style="color: #000000;">];}</span>?><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>总页数:</td><td><input type="text" name="page" style="width:300px;" value="<?php echo <span style="color: #800080;">$page</span>;?>" /></td> </tr> <tr> <td colspan=2><input type="submit" value="抓取全部邮箱数据" /></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 <span style="color: #800080;">$url2</span>;?>" style="width:300px;" /></td> </tr> <tr> <td colspan=2><input type="submit" value="抓取当前页面邮箱数据" /></td> </tr></table></form><?<span style="color: #000000;">php</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$_GET</span>['type']!=""<span style="color: #000000;">){ </span><span style="color: #800080;">$counts</span>=0<span style="color: #000000;">; </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$_GET</span>['type']=="getAll"<span style="color: #000000;">){ </span><span style="color: #800080;">$pages</span>=<span style="color: #800080;">$_GET</span>['page'<span style="color: #000000;">]; </span><span style="color: #800080;">$url</span> = <span style="color: #800080;">$_GET</span>['url'<span style="color: #000000;">]; </span><span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0;<span style="color: #800080;">$i</span><<span style="color: #800080;">$pages</span>;<span style="color: #800080;">$i</span>++<span style="color: #000000;">){ </span><span style="color: #800080;">$ch2</span> =<span style="color: #000000;"> curl_init(); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_URL, <span style="color: #800080;">$url</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_FOLLOWLOCATION, <span style="color: #0000ff;">TRUE</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_SSL_VERIFYHOST, <span style="color: #0000ff;">FALSE</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_SSL_VERIFYPEER, <span style="color: #0000ff;">false</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_RETURNTRANSFER, <span style="color: #0000ff;">TRUE</span><span style="color: #000000;">); </span><span style="color: #800080;">$texts</span> = curl_exec(<span style="color: #800080;">$ch2</span><span style="color: #000000;">); curl_close(</span><span style="color: #800080;">$ch2</span><span style="color: #000000;">); </span><span style="color: #800080;">$dat</span>=getEmail(<span style="color: #800080;">$texts</span><span style="color: #000000;">); </span><span style="color: #0000ff;">for</span>(<span style="color: #800080;">$j</span>=0;<span style="color: #800080;">$j</span><<span style="color: #008080;">count</span>(<span style="color: #800080;">$dat</span>);<span style="color: #800080;">$j</span>++<span style="color: #000000;">){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dat</span>[<span style="color: #800080;">$j</span>]."<br />"<span style="color: #000000;">; </span><span style="color: #800080;">$counts</span>++<span style="color: #000000;">; } } }</span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$_GET</span>['type']=="getNow"<span style="color: #000000;">){ </span><span style="color: #800080;">$url</span> = <span style="color: #800080;">$_GET</span>['url2'<span style="color: #000000;">]; </span><span style="color: #800080;">$ch2</span> =<span style="color: #000000;"> curl_init(); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_URL, <span style="color: #800080;">$url</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_FOLLOWLOCATION, <span style="color: #0000ff;">TRUE</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_SSL_VERIFYHOST, <span style="color: #0000ff;">FALSE</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_SSL_VERIFYPEER, <span style="color: #0000ff;">false</span><span style="color: #000000;">); curl_setopt(</span><span style="color: #800080;">$ch2</span>, CURLOPT_RETURNTRANSFER, <span style="color: #0000ff;">TRUE</span><span style="color: #000000;">); </span><span style="color: #800080;">$texts</span> = curl_exec(<span style="color: #800080;">$ch2</span><span style="color: #000000;">); curl_close(</span><span style="color: #800080;">$ch2</span><span style="color: #000000;">); </span><span style="color: #800080;">$dat</span>=getEmail(<span style="color: #800080;">$texts</span><span style="color: #000000;">); </span><span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0;<span style="color: #800080;">$i</span><<span style="color: #008080;">count</span>(<span style="color: #800080;">$dat</span>);<span style="color: #800080;">$i</span>++<span style="color: #000000;">){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$dat</span>[<span style="color: #800080;">$i</span>]."<br />"<span style="color: #000000;">; </span><span style="color: #800080;">$counts</span>++<span style="color: #000000;">; } } </span><span style="color: #0000ff;">echo</span> '<h2>共采集到数据:'.<span style="color: #800080;">$counts</span>.'条</h2>'<span style="color: #000000;">;}</span><span style="color: #0000ff;">function</span> getEmail(<span style="color: #800080;">$str</span><span style="color: #000000;">){ </span><span style="color: #800080;">$pattern</span> = "/([a-z0-9\-_\.]+@[a-z0-9]+\.[a-z0-9\-_\.]+)/"<span style="color: #000000;">; </span><span style="color: #008080;">preg_match_all</span>(<span style="color: #800080;">$pattern</span>,<span style="color: #800080;">$str</span>,<span style="color: #800080;">$emailArr</span><span style="color: #000000;">); </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$emailArr</span>[0<span style="color: #000000;">]; }</span>?>