ホームページ  >  記事  >  バックエンド開発  >  PHP フォーラム収集プログラムはログインをシミュレートし、ページ実装コードをキャプチャします_PHP チュートリアル

PHP フォーラム収集プログラムはログインをシミュレートし、ページ実装コードをキャプチャします_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:45:431006ブラウズ

コードをコピーします コードは次のとおりです:

// Wu Yanjun
// 2009-06-27
// コレクション プログラム php
set_time_limit(0);保存ディレクトリ
$ cookie_jar = '/tmp/cookie.tmp';
/*関数----------------------------- --- --------------------------------------------------- --- -----------------------*/
//リクエストデータをシミュレート
function request($url,$postfields,$cookie_jar,$referer) {
$ ch =curl_init();
$options = array(CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_NOBODY => 0,
CURLOPT_PORT => 80,
CURLOPT_POST => 1 、
C URLOPT_POSTFIELDS = > $postfields、
CURLOPT_RETURNTRANSFER =>
CURLOPT_FOLLOWLOCATION => 1、
CURLOPT_COOKIEJAR => gt; $referer
);
curl_setopt_array($ch , $ options);
$code =curl_exec($ch);
return $code;
//投稿リストを取得する
function getThreadsList($code){
preg_match_all('/ < ! --[.|r|n]*? .+ / ',$code,$author_tmp);
$author =strip_tags($author_tmp[0]);
return $author
}
function getContents($code){
preg_match('/
(.|r|n)*?
/',$code,$contents_tmp);
$contents = preg_replace(' /images// ','http://bbs.war3.cn/images/',$contents_tmp[0]);
return $contents;
//投稿タイトルを印刷する
function printTitle($title){
echo "

投稿タイトル:

",strip_tags($title),"

"; /投稿作成者を出力します
function printAuthor($author){
echo "

投稿作成者:

",strip_tags($author),"

";
}
//投稿コンテンツを印刷
function printContents($contents){
echo "

作成者によって公開されたコンテンツ:

", $contents," < /strong>
";
}
//Error
function printError(){
echo " この投稿は存在しません! "; }
/*関数リスト終了 -------------------------------------- ---------------------------------------------------- -------* /
/*ログインフォーラムの開始*/
$url = 'http://bbs.war3.cn/logging.php?action=login';
$postfields='loginfield=username&username= 1nject10n& パスワード=xxxxxx&questionid=0&cookietime=315360000& リファラー=http://bbs.war3.cn/&loginsubmit=submit';
request($url,$postfields,$cookie_jar,'');
unset($postfields,$url); ;
/*フォーラムにログイン* /
/*投稿リスト(最初のページの投稿)を取得*/
$url = 'http://bbs.war3.cn/forumdisplay.php?fid=57'; $code = request($url ,'',$cookie_jar,'');
$threadsList = getThreadsList($code);
/*投稿リストの取得*/
//投稿シーケンス
$rows = 0; /*すべての投稿ソースを取得するループ コードの開始*/
foreach($threadsList as $list){
$url = "http://bbs.war3.cn/viewthread.php?tid=$list"; isExits($code)){
$code = request($url,'',$cookie_jar,'');
$color = $rows%2==0?'#00CCFF':'#FFFF33'; "
";
echo "

th",($rows+1),"投稿:


" ;
$author = getAuthor($author);
$title = getContents($code); );
echo "
"
}
printError(); ----------- -------------------------------------- ----------- ---------

";
}
/*ソースコードを取得*/
?>

www.bkjia.com本当http://www.bkjia.com/PHPjc/320308.html技術記事次のようにコードをコピーします。 ?php // Wu Yanjun // 2009-06-27 // 収集プログラム php set_time_limit(0) // Cookie 格納ディレクトリ $cookie_jar = '/tmp/cookie.tmp'; - ------------------...