php採集(php小偷)程式設計教程
- 天涯風雲 釋出於2007-06-03 11:54:08
- 如何採集?
如何採集?
通常採集程式,都是有的放矢的。也就是需要有目標網站,蒐集一些你需要的採集內容的網站,分別對其html程式碼進行分析,找出規律性的東西,依據你要採集的特定內容,寫出php程式碼。採集到你要的東西以後,你可以選擇自己需要的存放方式。比如直接生成html頁面,或是放進資料庫,作進一步處理或是存放成特定的形式,以備後用。
針對目標網站,我們可以採用以下方式:
1.使用file()函式,獲取目標頁面檔案流,轉換成字串,作進一步處理.
一個範例函式:CODE:
//獲取目標頁面檔案流並轉換成字串形式
function openfile($url)
{
if(file($url)){
$str = file($url);
$count = count($str);
for ($i=0;$i<$count;$i++){
$file .= $str[$i];
}
return $file;
} else { die("檔案開啟失敗!"); }
}
用法舉例:
$getstr=openfile("http://86enjoy.com");
//getsrt是一個字串,你可對它作進一步處理。CODE:
$getstr=file_get_contents("http://86enjoy.com");
3.使用Microsoft.XMLHTTP元件方式。不過該元件需要windows平臺支援,它是windows的一個元件,php程式以com形式呼叫它。
//getsrt就是一個字串,你可對它作進一步處理。
範例程式:CODE:
<?php
//Microsoft.XMLHTTP元件使用範例程式get.php
//作者:天涯風雲
$url=$_GET['id'];
$xmlhttp = new COM("Microsoft.XMLHTTP") or die("無法建立Microsoft.XMLHTTP元件!");
$xmlhttp->open("GET",$url,False, "", "");
$xmlhttp->setRequestHeader("content-Type","text/html");
$xmlhttp->send();
$body=$xmlhttp->responseText;
echo $body;
?>
用法:get.php?id="目標頁面"
範例程式:CODE:
function request_url($url,$method='POST') {
$url = parse_url($url); //解析url地址,取得host,path,port,query等
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
//連線伺服器
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "不能連線".$url['host']."伺服器";
//傳送請求
fputs($fp, sprintf("$method %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]/n");
fputs($fp, "Content-type: application/x-www-form-urlencoded/n");
fputs($fp, "Connection: close/n/n");
//獲得請求後返回的內容
$line = fgets($fp,1024);
if (!eregi("^HTTP/1/.. 200", $line)) return;
$results = "";
while(!feof($fp)) {
$line = fgets($fp,1024);
$results .= $line;
}
fclose($fp);
return $results;
}
函式用法:
$getstr=request_url("目標頁面");
//getstr是一個字串,你可對它作進一步處理。
- 天涯風雲 釋出於2007-06-03 12:24:33
- 採集範例程式
採集範例程式1
獲取sina網上的某個城市的天氣資訊
//sinatianqi.phpCODE:
<?php
程式執行情況:
/* 此程式是從新浪網的天氣網頁[url]http://php.weather.sina.com.cn/search.php?city=[/url]某個城市名,取得天氣資訊*/
ob_start(); //啟動輸出緩衝
function request_url($url,$method='POST') {
$url = parse_url($url); //解析url地址,取得host,path,port,query等
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
//連線伺服器
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "不能連線".$url['host']."伺服器";
//傳送請求
fputs($fp, sprintf("$method %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]/n");
fputs($fp, "Content-type: application/x-www-form-urlencoded/n");
fputs($fp, "Connection: close/n/n");
//獲得請求後返回的內容
$line = fgets($fp,1024);
if (!eregi("^HTTP/1/.. 200", $line)) return;
$results = "";
while(!feof($fp)) {
$line = fgets($fp,1024);
$results .= $line;
}
fclose($fp);
return $results;
}
//獲得從其它網頁傳送過來的url(帶查詢字串)
if (!$_REQUEST['url']) {
echo "請新增一個url";
exit;
}else{
$url=$_REQUEST['url'];
}
$content=request_url($url); //取得請求後的網頁內容
$start=strpos($content,"<!-- 天氣狀況 begin -->");//取得天氣預報的擷取段
$end=strpos($content,"<!-- 天氣狀況 end -->");
$len=$end-$start;
$b=substr($content,$start,$len); //擷取得指定內容
//從上面的擷取段中取得城市今日天氣預報的擷取段
$sub_start=strpos($b,"<div class=/"City_Data/">");
$sub_end=strpos($b,"<div class=/"Weather_SM/">");
$len2=$sub_end-$sub_start;
$c=substr($b,$sub_start,$len2);
$d=split("/n",$c); //去掉換行符
//print_r($d);
$e="";
foreach ($d as $key=>$value){
$value=strip_tags($value); //去掉html標記
$e.=$value;
if ($key==2) {
$e.="<br>";
}
}
echo $e;
ob_end_flush();
?>
測試
[ 本帖最後由 天涯風雲 於 2007-6-3 12:26 編輯 ]
- 天涯風雲 釋出於2007-06-03 12:29:08
- 採集範例程式
採集範例程式
採集範例程式2:取得tom的天氣CODE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
示範頁面:http://86mm.com.cn/tianqi.php
<HTML><HEAD><TITLE>天氣預報-天氣查詢-中國美女網</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="images/home.css" rel=stylesheet>
<META content="MSHTML 6.00.3790.2759" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<center><div>
<TABLE cellSpacing=0 cellPadding=0 width=774 align=center border=0>
<TBODY>
<TR>
<TD><IMG height=100 src="templates/default/images/top1.jpg" width=770></TD>
</TR></TBODY></TABLE>
<TABLE height=28 cellSpacing=0 cellPadding=0 width=774 align=center border=0>
<TBODY>
<TR>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.86mm.com.cn/" target=_blank>首頁</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/zouguangtoupai/"
target=_blank>走光偷拍</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/jiqingyouhuo/"
target=_blank>激情誘惑</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/qingchunnvhai/"
target=_blank>清純女孩</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/meinvzipai/"
target=_blank>美女自拍</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/mingxingxiezhen/"
target=_blank>明星寫真</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/xingaijiankang/"
target=_blank>性愛健康 </A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/mianfeidianying/" target=_blank>免費電影</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/html/gaoxiaotupian/" target=_blank>搞笑圖片</A></TD>
<TD vAlign=center align=middle width=2
background=templates/default/images/tt_r4_c1.jpg><IMG height=22
src="templates/default/images/tt_r5_c8.jpg" width=1></TD>
<TD vAlign=center align=middle background=templates/default/images/tt_r4_c1.jpg><A
href="http://www.huazhongpc.com/tianqi.php" target=_blank>天氣預報</A></TD>
</TR></TBODY></TABLE>
<TABLE style="MARGIN-TOP: 2px" cellSpacing=0 cellPadding=0 width=774
background=images/t2_05.gif border=0>
<TBODY>
<TR><td>
<SCRIPT language=JavaScript>
<!---
today = new Date();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeValue = "<FONT COLOR=#000000>" + (hours);
timeValue += ((minutes < 10) ? "<FONT COLOR=#000000>:</FONT></BLINK>0" : "<FONT COLOR=#000000>:</FONT></BLINK>") + minutes+"</FONT></FONT>";
function initArray(){
this.length=initArray.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=initArray.arguments[i] }
var d=new initArray("<font color=#0000ff>星期天","<font color=#000000>星期一","<font color=#000000>星期二","<font color=#000000>星期三","<font color=#000000>星期四","<font color=#000000>星期五","<font color=#FEFF80>星期六");
document.write("<font color=#000000>",today.getYear(),"年","",today.getMonth()+1,"月","",today.getDate(),"日 </FONT>",d[today.getDay()+1]," "); //-->
</SCRIPT>
<font color=#0000ff>(友情提醒:按"Ctrl鍵+F"查詢你所在城市的天氣情況)</font><form name="form1" action="http://weather.tq121.com.cn/detail.php">
<input name="city" type="text" size="20">
<input type="submit" value="搜尋">
</form>
</TD></TR>
</TBODY></TABLE>
<TABLE style="MARGIN-TOP: 2px" cellSpacing=0 cellPadding=0 width=774
background=images/t2_05.gif border=0>
<TBODY>
<TR>
<TD width=20><IMG height=21 src="images/t2_04.gif" width=13></TD>
<TD class=c1 width=153>中國天氣查詢 </TD>
<TD width=14><IMG height=21 src="images/t2_06.gif" width=14></TD>
<TD align=right background=images/t2_07.gif>
資料來源:<A
href="http://www.tq121.com.cn/"
target=_blank>中央氣象臺</A></TD>
<TD width=7><IMG height=21 src="images/t2_08.gif"
width=7></TD></TR></TBODY></TABLE>
<DIV id=guonei_h24 name="guonei_h24">
<TABLE cellSpacing=1 cellPadding=1 width=774 bgColor=#ababab border=0>
<TBODY>
<?php
$str = file("http://tq.tom.com/china/index.html");
$count = count($str);
for ($i=0;$i<$count;$i++){
$file .= $str[$i];
}
$tomtq = explode("<table width=/"774/" border=/"0/" cellspacing=/"1/" cellpadding=/"1/" bgcolor=/"#ABABAB/">",$file);
$tomtq = explode("</table>",$tomtq[1]);
$tomtq= $tomtq[0];
echo $tomtq;
?>
</TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=0 width=774 align=center border=0>
<TBODY>
<TR>
<TD bgColor=#bbf1ff>
<TABLE cellSpacing=5 cellPadding=0 width=774 border=0>
<TBODY>
<TR>
<TD align=middle><A href="http://www.86mm.com.cn/"
target=_blank>聯絡我們</A> <FONT color=#000099>-</FONT> <A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.86mm.com.cn');return false;"
href="http://www.86mm.com.cn/#">設定首頁</A> <FONT color=#000099>-</FONT>
<A href="http://sms.25vod.com/public/fullscreen/golink.php?smsid=107"
target=_blank>廣告服務</A> <FONT color=#000099>-</FONT> <FONT
color=#ff0000><A href="http://sms.25vod.com/public/fullscreen/golink.php?smsid=107"
target=_blank>友情連結</A></FONT></TD>
</TR>
<TR>
<TD
align=middle>本站內容來自於網際網路搜尋和網友改編、上傳,本站提供的視訊、音樂片斷僅供網友測試使用,<BR>如發現相關內容侵犯了您的權益,請及時聯絡我們,本站將會及時予以刪除<BR>
聯絡QQ:231734624
聯絡E-mail:[email protected]<BR>
Copyright ? 2005-2008 86mm.com.cn Inc. All
rights reserved. 華中美女網 版權所有 <BR><script language="javascript" type="text/javascript" src="http://js.users.51.la/882050.js"></script>
<noscript><a href="http://www.51.la/?882050" target="_blank"><img alt="我要啦免費統計" src="http://img.users.51.la/882050.asp" style="border:none" /></a></noscript><a href=http://www.miibeian.gov.cn/>鄂ICP備06012810號</a><BR>
</TD>
</TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
</DIV>
</CENTER></BODY></HTML>
[ 本帖最後由 天涯風雲 於 2007-6-5 19:42 編輯 ]
- 天涯風雲 釋出於2007-06-03 12:37:12
- 一些常用的函式
CODE:
// ####################### 獲取檔案流並轉換成字串 #######################
function openfile($url)
{
if(file($url)){
$str = file($url);
$count = count($str);
for ($i=0;$i<$count;$i++){
$file .= $str[$i];
}
return $file;
} else { die("檔案開啟失敗!"); }
}
// ####################### 切分字串 #######################
function cut($start,$end,$file){
$content=explode($start,$file);
$content=explode($end,$content[1]);
return $content[0];
}
// ####################### 清除垃圾程式碼 #######################
function del($start,$end,$content){
$del=cut($start,$end,$content);
$content=str_replace($del,"",$content);
$content=str_replace($start.$end,"",$content);
return $content;
}
// ####################### 分析域名 #######################
function getname($url)
{
$referer = preg_replace("/https?:////([^//]+).*/i", "//1", $url);
$referer = str_replace("www.", "", $referer);
return $referer;
}
// ####################### 清除HTML程式碼table #######################
function clstable($content)
{
$clscontent= preg_replace("/<table[^>]*?>.*?<//table>/si", "", $content);
return $clscontent;
}
// ####################### 清除HTML程式碼script #######################
function clsscript($content)
{
$clscontent= preg_replace("/<script[^>]*?>.*?<//script>/si", "", $content);
return $clscontent;
}
// ####################### 清除HTML程式碼div #######################
function clsdiv($content)
{
$clscontent= preg_replace("/<div[^>]*?>.*?<//div>/si", "", $content);
return $clscontent;
}
// ####################### 清除HTML程式碼iframe #######################
function clsifr($content)
{
$clscontent= preg_replace("/<IFRAME[^>]*?>.*?<//IFRAME>/si", "", $content);
return $clscontent;
}
// ####################### 清除HTML程式碼tr,td #######################
function clstrtd($content)
{
$clscontent= preg_replace("/<td[^>]*?>.*?<//td>/si", "", $content);
$clscontent= preg_replace("/<tr[^>]*?>.*?<//tr>/si", "", $clscontent);
$clscontent= preg_replace("/<tr[^>]*?>/si","",$clscontent);
$clscontent= preg_replace("/<td[^>]*?>/si","",$clscontent);
$clscontent= preg_replace("/<//tr>/si","",$clscontent);
$clscontent= preg_replace("/<//td>/si","",$clscontent);
return $clscontent;
}
// ####################### 清除HTML程式碼超連結 #######################
function clsa($content)
{
$clscontent= preg_replace("/<a[^>]*?>.*?<//a>/si", "", $content);
return $clscontent;
}
// ####################### 徹底清除所有HTML程式碼#######################
function clearhtml($content)
{
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'<[///!]*?[^<>]*?>'si", // 去掉 HTML 標記
"'([/r/n])[/s]+'", // 去掉空白字元
"'&(quot|#34);'i", // 替換 HTML 實體
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(/d+);'e"); // 作為 PHP 程式碼執行
$replace = array ("",
"",
"//1",
"/"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(//1)");
$text = preg_replace ($search, $replace, $content);
return $text;
}
// ####################### 寫入快取檔案 #######################
function writetocache($cachedir,$cachename, $cachedata = '') {
$cachedir = './'.$cachedir.'/';
$cachefile = $cachedir.$cachename.'.php';
if(!is_dir($cachedir)) {
@mkdir($cachedir, 0777);
}
if(!is_dir($cachedir)) {
@mkdir($cachedir, 0777);
}
if(@$fp = fopen($cachefile, 'wb')) {
@fwrite($fp, $cachedata);
@fclose($fp);
@chmod($cachefile, 0777);
} else {
echo 'Can not write to cache files, please check directory ./cache/ .';
exit;
}
}
// ####################### 獲取檔案裡的html連結 #######################
function geturl($re,$ufile,$rep1,$rep2){
preg_match_all ($re,
$ufile,
$out, PREG_PATTERN_ORDER);
$result=count($out[1]);
$i=0;
while($i<$result)
{
$outs[$i]=str_replace($rep1,$rep2,$out[1][$i]);
$i++;
}
//合併相同的連結並重新索引...
$reout=array();
$reout=resetar($outs);
return $reout;
}
- 天涯風雲 釋出於2007-06-03 13:01:53
- 對一個目標網站的全面採集
對一個目標網站的全面採集,包括以下幾個步聚:
1。分析首頁或分類頁的html原始碼
2。依據分析,寫出正則表示式,採集首頁或分類頁面裡的連結
3。將連結作為目標頁面,進行二次採集。
4.將採集的內容作進一步處理。
[ 本帖最後由 天涯風雲 於 2007-6-3 13:27 編輯 ]
- 天涯風雲 釋出於2007-06-03 13:28:42
- 範例:對86mm.com.cn網站的全面採集
範例:對86mm.com.cn網站的全面採集
一,對首頁原始碼分析,找出連結規律
該網站首頁原始碼檢視:http://86mm.com.cn/files.php?id=http://86mm.com.cn
分析有效連結:CODE:
<TR><TD><a href="html/xingaijiankang/8104.html" target="_blank" title="男性生殖保健">
現在我們就要找出形如"html/xingaijiankang/8104.html"類似字串的所有連結。
男性生殖保健</a></TD></TR>
[ 本帖最後由 天涯風雲 於 2007-6-3 13:39 編輯 ]
- 天涯風雲 釋出於2007-06-03 13:37:18
- 範例:對86mm.com.cn網站的全面採集
二,寫正則表示式,找出首頁裡的所有連結
關鍵字串:|<a href="html/xingaijiankang/8104.html" target="_blank"|
正則匹配規則:
$re="|<a href=/"(html///w+///d{1,5}/.html)/" target=/"_blank/"|U";
找所有連結,並顯示結果:CODE:
<?php
[ 本帖最後由 天涯風雲 於 2007-6-3 13:49 編輯 ]
// ####################### 獲取檔案裡的html連結 #######################
function geturl($re,$ufile,$rep1,$rep2){
preg_match_all ($re,
$ufile,
$out, PREG_PATTERN_ORDER);
$result=count($out[1]);
$i=0;
while($i<$result)
{
$outs[$i]=str_replace($rep1,$rep2,$out[1][$i]);
$i++;
}
//合併相同的連結並重新索引...
$reout=array();
$reout=resetar($outs);
return $reout;
}
set_time_limit(0);
$url=$_GET['http://86mm.com.cn'];
$ufile=file_get_contents($url);
$re="|<a href=/"(html///w+///d{1,5}/.html)/" target=/"_blank/"|U";
$rep1="";
$rep2="";
$urls=geturl($re,$ufile,$rep1,$rep2);
$result=count($urls);
echo "共找到".$result."個連結<br>";
$i=0;
while($i<$result)
{
$outurl[$i]="http://86mm.com.cn/".$urls[$i];
echo $outurl[$i]."<br>";
$i++;
}
?>
3.JPG
- 天涯風雲 釋出於2007-06-03 14:19:09
- 範例:對86mm.com.cn網站的全面採集
三,對內容頁面html原始碼分析,採集標題和內容(本範例主要採集頁面標題和內容)
檢視原始碼:http://86mm.com.cn/files.php?id= ... einvzipai/8061.html
分析:CODE:
<TITLE>世界上最搞笑的屁股⌒-mianfeidianying,中國美女網,性愛,免費,短片,視訊,惡搞,搞笑圖片</TITLE>
這部分可以用cut("<TITLE>","</TITLE>",$file)直接獲取,然後把後面多餘的尾巴換掉。
主要內容部分集中在CODE:
<td height="15" valign="top">..............<!--流量交換-->
這一區間內,我們可以再次cut()一下,取得內容。
這樣標題我內容就全獲取了。。
具體實現程式碼:CODE:
<?php
這樣,我們就可以獲取一個頁面內的標題和內容了。。
// ####################### 切分檔案流 #######################
function cut($start,$end,$file){
$content=explode($start,$file);
$content=explode($end,$content[1]);
return $content[0];
}
// ####################### 清除垃圾程式碼 #######################
function del($start,$end,$content){
$del=cut($start,$end,$content);
$content=str_replace($del,"",$content);
$content=str_replace($start.$end,"",$content);
return $content;
}
set_time_limit(0);
$url=$_GET['id'];
$files=file_get_contents($url);
$title=cut("<TITLE>","</TITLE>",$files);
//清除標題後面的多餘字串
$title=str_replace("-mianfeidianying,中國美女網,性愛,免費,短片,視訊,惡搞,搞笑圖片","",$title);
$content=cut("<td height=/"15/" valign=/"top/">","<!--流量交換-->"
,$files);
//清除內容裡的一句廣告詞
$content=del("<font color=red>","</font>",$content);
echo $title."<br>";
echo $content;
?>
[ 本帖最後由 天涯風雲 於 2007-6-3 14:29 編輯 ]
4.GIF
- 天涯風雲 釋出於2007-06-03 14:58:50
- 範例:對86mm.com.cn網站的全面採集
四,批量獲取首頁裡所有連結的標題和內容,並以php檔案的形式儲存。
下面,我們要用程式依次開啟86mm.com.cn首頁裡所有連結,並取得相應的標題和內容,存為php檔案,當然你可以生成其它格式的檔案或放進資料庫裡,這以個人需要而定。
程式碼如下:CODE:
<?php
示例中,將取得的標題和內容存為php陣列形式的檔案,主要為了檔案做後期處理,或寫入資料庫,或生成html文件都可以
// ####################### 獲取檔案裡的html連結 #######################
function geturl($re,$ufile,$rep1,$rep2){
preg_match_all ($re,
$ufile,
$out, PREG_PATTERN_ORDER);
$result=count($out[1]);
$i=0;
while($i<$result)
{
$outs[$i]=str_replace($rep1,$rep2,$out[1][$i]);
$i++;
}
//合併相同的連結並重新索引...
$reout=array();
$reout=resetar($outs);
return $reout;
}
// ####################### 切分檔案流 #######################
function cut($start,$end,$file){
$content=explode($start,$file);
$content=explode($end,$content[1]);
return $content[0];
}
// ####################### 清除垃圾程式碼 #######################
function del($start,$end,$content){
$del=cut($start,$end,$content);
$content=str_replace($del,"",$content);
$content=str_replace($start.$end,"",$content);
return $content;
}
// ####################### 清除數組裡的重複值並重新索引陣列 #######################
function resetar($outs){
$reout=array();
$reouts=array();
$reout=array_unique($outs);
foreach($reout as $key=>$value){
array_push($reouts,$value);
}
return $reouts;
}
// ####################### 寫入快取檔案 #######################
function writetocache($cachedir,$cachename, $cachedata = '') {
$cachedir = './'.$cachedir.'/';
$cachefile = $cachedir.$cachename.'.php';
if(!is_dir($cachedir)) {
@mkdir($cachedir, 0777);
}
if(!is_dir($cachedir)) {
@mkdir($cachedir, 0777);
}
if(@$fp = fopen($cachefile, 'wb')) {
@fwrite($fp, "<?php/r/n//天涯風雲,版權所有/r/n//Created on /r/n/r/n".$cachedata."/r/n/r/n?>");
@fclose($fp);
@chmod($cachefile, 0777);
} else {
echo 'Can not write to cache files, please check directory ./cache/ .';
exit;
}
}
// ####################### 建立快取檔案 #######################
function content_recache($cachedir,$i,$title,$content) {
$contents = "/$catecache = array(/r/n";
$contents.="/t'title' => '".$title."',/r/n'content'=> '".$content."'/r/n";
$contents .= ");";
writetocache($cachedir,$i,$contents);
echo "./".$cachedir."/".$i.".php檔案建立成功!<br>";
}
set_time_limit(0);
$url='http://86mm.com.cn';
$ufile=file_get_contents($url);
$re="|<a href=/"(html///w+///d{1,5}/.html)/" target=/"_blank/"|U";
$rep1="";
$rep2="";
$urls=geturl($re,$ufile,$rep1,$rep2);
$result=count($urls);
echo "共找到".$result."個連結<br>";
$i=0;
while($i<$result)
{
$outurl[$i]="http://86mm.com.cn/".$urls[$i];//對取得的連結加域名,得到實際地址
echo $outurl[$i]."<br>";
$files[$i]=file_get_contents($outurl[$i]);
$title[$i]=cut("<TITLE>","</TITLE>",$files[$i]);
$title[$i]=str_replace("-mianfeidianying,中國美女網,性愛,免費,短片,視訊,惡搞,搞笑圖片","",$title[$i]);
$content[$i]=cut("<td height=/"15/" valign=/"top/">","<!--流量交換-->"
,$files[$i]);
//清除內容裡的一句廣告詞
$content[i]=del("<font color=red>","</font>",$content[i]);
//將取得的標題和內容寫入檔案
content_recache("86mm",$i,$title[$i],$content[$i]);
$i++;
}
?>
相關推薦
php採集(php小偷)程式設計教程
天涯風雲 釋出於2007-06-03 11:54:08 如何採集?如何採集? 通常採集程式,都是有的放矢的。也就是需要有目標網站,蒐集一些你需要的採集內容的網站,分別對其html程式碼進行分析,找出規律性的東西,依據你要採集的特定內容,寫出php程式碼。採集到你要的東西以後,你可以選擇自己需要的存放方式
PHP系列(十二)數據庫抽象層pdo
pdo1、數據庫抽象層pdo(1)、PDO(php data object)擴展類庫為php訪問數據庫定義了輕量級的、一致性的接口它可以支持mysql,postgresql,oracle,mssql等多種數據庫(2). PDO的安裝編輯php.ini文件:– extension=php_pdo.dll– ex
LAMP平臺搭建-PHP篇(終結篇)
PHP LAMP PHP知識部分LAMP平臺的構成組件:1、Linux操作系統,Linux操作系統是整個LAMP架構的基礎部分,提供用於支撐Web站點的操作系統,為其他的組件提供了更好的穩定性、兼容性2、Apache網站服務器,作為LAMP架構的前端,功能強大、穩定性良好3、MySQL數據庫服務器,為
一文解決 PHP靜態(區域性/全域性)變數、auto(區域性/全域性)變數、類中static
一、靜態區域性變數、auto區域性變數、類中static 這是我的概念: 類屬性,類方法:是給類使用的,在類中使用 self::和 static:: 代表,供呼叫 例項屬性,例項方法:是給例項使用的,在類中使用 this-> 代表,供呼叫 <?php /**
程式設計字典(codingdict.com)Java教程
java教程 Java 教程 Java 簡介 Java 開發環境配置 Java 基礎語法 Java 物件和類 Java 基本資料型別 Java變數型
搭建PHP環境(XAMPP+PhpStorm),並設定斷點除錯(XDebug+Chrome)
二、安裝XAMPP 網址:XAMPP 如圖所示:預設情況下,Server裡面全部選中,由於本人電腦上已經安裝過MySQL,因此這裡取消了MySQL選項。本人的安裝路徑是F:\software; 安裝之後的介面如下: 三、安裝XDebug 3
php斷點除錯工具------NetBeans+Xdebug除錯php方法(測試成功)
@原文url:https://www.cnblogs.com/feichengwulai/articles/6252039.html@原文url:http://www.cnblogs.com/dcb3688/p/4608015.html@netbeans官方除錯php程式碼說
Apache+PHP+Python(Django框架)搭建成功
前天把Apache+PHP伺服器搭好了,還通過配置VirtualHost實現了“分流”,也就是為今天上Django框架做好了準備。 現在我的成果是這樣的: (1) /etc/apache2/sites-available/000-default.conf 中配置Virtua
linux上搭建PHP環境(php+mysql+apache)
一、獲取安裝包 PHP下載地址:http://cn.php.net/distributions/php-7.1.10.tar.gz Apache下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.28.
那些年我們踩過的php坑(持續更新)
原因:在第一次迴圈時,陣列的指標指向下一個元素,得到的陣列值為2,這個時候,php陣列內部會複製一份臨時的陣列$tmp, $tmp的指標指向第二個元素,後續呼叫current($a),實際上是取的臨時陣列$tmp的當前值,而$tmp的指標始終指向第二個元素,所以輸出結果永遠是2
PHP筆記(PHP常用測試程式碼)
//查詢php頁面載入時間和執行 $start = microtime(true); //code $finish = microtime(true); printf(" total run: %.2f s <br> memory usage: %
centos6.5和centos7如何搭建php環境(包括php7)
首先我們先檢視下centos的版本資訊: #適用於所有的linux lsb_release -a #或者 cat /etc/redhat-release #又或者 rpm -q centos-release 以上三種任意一種均可檢視centos的版本資訊。 這裡我們
gamemaker studio2 Arena Shooter(競技場射擊)圖文教程 5 教程搬運加自己經驗
表現 img 分數 結果 期待 ima 自己 camera cnblogs 6月22日 20:20 這部分是繪制文本 得分機制 首先創建空對象 追蹤成績 空對象就是不鏈接精靈 添加創造事件 增加個記錄分數的變量 添加繪制事件 我們需要顯示一個記錄分數的標誌
gamemaker studio2 Arena Shooter(競技場射擊)圖文教程 6 教程搬運加自己經驗
images 21點 效果 添加 謝謝 技術 ges 自己 事件 哈羅,我又來了。 6月27號 20點33 今天學習添加聲音 要想實現聲音效果還需要在代碼中添加 上面是素材的導入 哦是在敵人對象步事件中 解釋看圖 然後就是添加隨機音高 讓我們聽到遊戲聲音是
gamemaker studio2 Arena Shooter(競技場射擊)圖文教程 8 教程搬運加自己經驗
設置 -1 精靈 blog 操作 事件 搬運 計時器 src 隨機生成敵人 先設置好敵人層 創建新的實例層 命名 操作的是 調整層次為 記得把原來實例層中的敵人實例刪除 然後創建新的產卵對象 添加創造事件 這倆個函數是設置精靈的縮放 一個沿x軸縮放 一個沿y軸縮放
Xcode -(OC版)Storyboard教程 1.5:Segues的介紹
con .cn 自動 參數 bar atom 繼承 彈出 rop 1 - 現在,讓我們創建一個場景使用戶可以自己增加新的選手進入列表,在 Player 界面中拖入一個 Bar Button,放置在導航欄的右側,在屬性監視器中將它的 System Item 改為『add』,這
c#創建Windows service (Windows 服務)基礎教程
log 腳本 mage src installer als highlight syn project 轉自:http://www.cnblogs.com/sorex/archive/2012/05/16/2502001.html 1)創建Windows service項
UML(Rational Rose)安裝教程【載百度經驗】
對話 需要 ddc 開始菜單 dex 鼠標右鍵 ins 安裝路徑 fix ---恢復內容開始--- Win7安裝rational rose2007教程 在UML建模的眾多工具中,IBM公司的rational rose建模工具可以說是最好用的建模工具了。哪我們
GitHub(網頁版)簡明教程
GitHub(網頁版)簡明教程 GitHub官網:GitHub 一、註冊 進入GitHub官網,介面如下圖所示。 根據提示一步一步完成註冊。 二、使用 1、登入使用者主頁,介面如下圖所示。 2、點選上圖中的綠色按鈕“New repository”建立新的知識庫,點選後
sublime markdown環境下畫圖 (使用Graphviz)配置教程
下載安裝Graphviz 官網連結 http://www.graphviz.org/。在下使用的是Windows,安裝完成之後把 bin 目錄加入環境變數,在CMD中用dot -V檢驗時候安裝配置完畢 安裝外掛 安裝外掛能夠實現預覽,然而在windows上安裝外掛沒有什麼軟用