実際には、泥棒プログラムは php の特定の機能を使用して他の人の Web サイトのコンテンツを収集し、定期的な分析を通じて必要なコンテンツを自分のローカル データベースに保存します。 ここで、必要に応じて php 泥棒プログラムの実装方法を紹介します。友人はそれを参照できます。
file_get_contents 関数は、以下のデータ収集プロセスの鍵です
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = - 1 [ , int $maxlen ]]]] )
file_get_contents() がファイルを文字列に読み取る点を除いて、 file() と同じです。長さ maxlen の内容は、offset パラメーターで指定された位置から読み取られます。失敗すると、file_get_contents() は FALSE を返します。
file_get_contents() 関数は、ファイルの内容を文字列に読み取るための推奨される方法です。オペレーティング システムがメモリ マッピング テクノロジをサポートしている場合は、パフォーマンスを向上させるためにメモリ マッピング テクノロジも使用されます。
例
コードは次のとおりです | コードをコピー |
$homepage = file_get_contents('http://www.hzhuti.com/'); echo $homepage; ?> ; |
このように、$homepage は保存されたコレクション ネットワークのコンテンツです。
例
コードは次のとおりです | コードをコピー |
function fetch_urlpage_contents($url){ $c=file_get_contents($url); return $c; } / /一致するコンテンツを取得します function fetch_match_contents($begin,$end,$c) { $begin=change_match_string($begin); $end=change_match_string($end); $p = "{$begin }(. *){$end}"; if(eregi($p,$c,$rs)) { return $rs[1];} else { return "";} }//エスケープ正規表現 数式文字列 function change_match_string($str){ //以下は単なるエスケープであることに注意してください //$old=array("/","$"); //$new=array(" /", "$"); $str=str_replace($old,$new,$str); return $str; } //ウェブページを収集 function pick($url,$ft,$th ) { $c=fetch_urlpage_contents($url); foreach($ft as $key => $value) { $rs[$key]=fetch_match_contents($value["begin"],$value[ "end"] ,$c); if(is_array($th[$key])) { foreach($th[$key] as $old => $new) { $rs[$key] =str_replace($old,$new,$rs[$key]); } } } return $rs; }
$url="http://www.bkjia.com";収集するアドレス $ft["title"]["begin"]=" "; //傍受の開始点 $ft["title"]["end"]="$th["title"]["中山"]="広東省"; // 傍受された部分の置換$ft["body"]["begin"] =" "; //インターセプトの開始点 $ft["body"]["end"]="" //インターセプトの終了点 $th["body"; ["中山"]="広東省 "; //傍受された部分を置き換えます
$rs=pick($url,$ft,$th) //収集を開始します
echo $rs["title"]; echo $rs["body"] // 出力 ?>
|
次のコードは前のページから変更されており、Web ページ上のすべてのハイパーリンク、電子メール、またはその他の特定のコンテンツを抽出するために特に使用されます
コードは次のとおりです | コードをコピーします |
function fetch_urlpage_contents($url ){ $c=file_get_contents($url); return $c; } //一致するコンテンツを取得 function fetch_match_contents($begin,$end,$c) { $begin= change_match_string($begin); $end=change_match_string($end); $p = "#{$begin}(.*){$end}#iU";//i は大文字小文字を無視することを意味し、U は貪欲な一致を禁止します if(preg_match_all($ p,$c,$rs)) { return $rs;} else { return "";} }//エスケープ正規表現 string function change_match_string($str){ //メモ, 以下の Just simple エスケープ $old=array("/","$",'?'); $new=array("/","$",'?'); $str=str_replace( $old ,$new,$str); return $str; } //ウェブページを収集 function pick($url,$ft,$th) { $c=fetch_urlpage_contents($url); foreach($ ft as $key => $value) { $rs[$key]=fetch_match_contents($value["begin"],$value["end"],$c); if(is_array( $th[ $key])) { foreach($th[$key] as $old => $new) { $rs[$key]=str_replace($old,$new,$rs[$key] ]); } } } return $rs; }
$url="http://www.bkjia.com" //収集されるアドレス $ft["a"][" begin"]= ' $ft["a"]["end"]='>'; //インターセプトの終了点 $rs =pick( $url,$ft,$th); // 収集を開始します print_r($rs["a"]); ?>
|
ヒントfile_get_contents の収集を防ぐのは非常に簡単ですこれは、上記よりもはるかに高度ですが、curl() は非常に効率的であり、マルチスレッドをサポートします。次のcurl拡張機能を有効にする必要があります。以下は、curl 拡張機能を有効にする手順です。
1. PHP フォルダー内の 3 つのファイル php_curl.dll、libay32.dll、ssleay32.dll を system32 にコピーします。
2. php.ini (c:WINDOWS ディレクトリ) をコピーします。以下) ;extension=php_curl.dll;のセミコロンを削除します
3. Apache または IIS を再起動します。
偽のReferer関数とUser_Agent関数を備えたシンプルなページキャプチャ関数
コードは次のとおりです | コードをコピーします |
function GetSources($Url,$User_Agent='',$ Referer_Url= '') //指定したページをキャッチします { //$Url クロールするページのアドレス //$User_Agent "baiduspider" や "googlebot" などの返される user_agent 情報 $ch =curl_init( ) ; curl_setopt ($ch, CURLOPT_URL, $Url); curl_setopt ($ch, CURLOPT_USERAGENT, $User_Agent); curl_setopt ($ch, CURLOPT_REFERER, $Referer_Url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $MySources =curl_exec ($ch); curl_close($ch); return $MySources; } $Url = "http://www.bkjia.com"; / /コンテンツを取得する必要はありません $User_Agent = "baiduspider+(+http://www.baidu.com/search/spider.htm)"; $Referer_Url = 'http://www.jb51.net/ '; echo GetSources($Url,$User_Agent,$Referer_Url); ?>
|
http://www.bkjia.com/PHPjc/444620.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444620.html技術記事この泥棒プログラムは、実際には php の特定の関数を使用して他の人の Web サイトのコンテンツを収集し、定期的な分析を通じて必要なコンテンツを独自のローカル データベースに保存します。