curl基本特性
目前成都創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、柴桑網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
模擬瀏覽器傳輸數(shù)據(jù)
實(shí)現(xiàn)post/get方式傳輸
支持多種協(xié)議:HTTP、HTTPS、FTP上傳
支持cookie,用戶名/密碼的認(rèn)證
使用curl完成請(qǐng)求的簡(jiǎn)單步驟
初始化一個(gè)curl句柄
resource curl_init ([ string $url = NULL ] )
設(shè)置curl選項(xiàng)
bool curl_setopt ( resource $ch , int $option , mixed $value )
執(zhí)行curl請(qǐng)求
mixed curl_exec ( resource $ch )
釋放curl資源
void curl_close ( resource $ch )
對(duì)于第一項(xiàng)表單而言
比如:
內(nèi)容的第一頁
內(nèi)容的第二頁
那么表單填.html
分析規(guī)則就是對(duì)比第一頁與第二頁的網(wǎng)址從左到右哪個(gè)字符出現(xiàn)不同,就把第一頁網(wǎng)址之后的字符復(fù)制出來
如果是這種情況
;page=1
;page=2
對(duì)于這種情況,他后面不同的是一個(gè)數(shù)字,即是頁碼數(shù)字的話,就不需要填寫.留空即可
對(duì)于第二項(xiàng)表單而言
第一頁
第二頁
那么右邊的表單填_[page].htm
分析規(guī)則就是對(duì)比第一頁與第二頁的網(wǎng)址從左到右哪個(gè)字符出現(xiàn)不同,就把第二頁的網(wǎng)址之后的字符復(fù)制出來,并把變動(dòng)的頁碼數(shù)字用[page]替換
如果是這種情況
;page=1
;page=2
對(duì)于這種情況,他后面不同的是一個(gè)數(shù)字,即是頁碼數(shù)字的話,更簡(jiǎn)單,只需要填寫[page]即可
對(duì)于第三項(xiàng)表單而言
第一頁
第二頁
此時(shí)屬于怪癖的,理論上應(yīng)該是
第三頁
所以表單請(qǐng)選擇是,但一般情況都是選否的,也就是說頁碼數(shù)字為1卻是第二頁.頁碼數(shù)為2卻是第三頁.就屬于特殊現(xiàn)象.需要選則是.
?php
include("connection.php");
$perNumber=10; //每頁顯示的記錄數(shù)
$page=$_GET['page']; //獲得當(dāng)前的頁面值
$count=mysql_query("select count(*) from user"); //獲得記錄總數(shù)
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //計(jì)算出總頁數(shù)
if (!isset($page)) {
$page=1;
} //如果沒有值,則賦值1
$startCount=($page-1)*$perNumber; //分頁開始,根據(jù)此方法計(jì)算出開始的記錄
$result=mysql_query("select * from user limit $startCount,$perNumber"); //根據(jù)前面的計(jì)算出開始的記錄和記錄數(shù)
while ($row=mysql_fetch_array($result)) {
echo "user_id:".$row[0]."br";
echo "username:".$row[1]."br"; //顯示數(shù)據(jù)庫的內(nèi)容
}
if ($page != 1) { //頁數(shù)不等于1
?
a href="fenye.php?page=?php echo $page - 1;?"上一頁/a !--顯示上一頁--
?php
}
for ($i=1;$i=$totalPage;$i++) { //循環(huán)顯示出頁面
?
a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a
?php
}
if ($page$totalPage) { //如果page小于總頁數(shù),顯示下一頁鏈接
?
a href="fenye.php?page=?php echo $page + 1;?"下一頁/a
?php
}
?
================================
這個(gè)是很簡(jiǎn)單的..而且也寫了注釋..不知道合不合你的意..
問題其實(shí)不難,自己都能寫。給你幾個(gè)思路吧:
1.在百度知道中,輸入linux,然后會(huì)出現(xiàn)列表。復(fù)制瀏覽器地址欄內(nèi)容。
然后翻頁,在復(fù)制地址欄內(nèi)容,看看有什么不同,不同之處,就是你要循環(huán)分頁的i值。
當(dāng)然這個(gè)是笨方法。
2.使用php的file或者file_get_contents函數(shù),獲取鏈接URL的內(nèi)容。
3.通過php正則表達(dá)式,獲取你需要的3個(gè)字段內(nèi)容。
4.寫入數(shù)據(jù)庫。
需要注意的是,百度知道有可能做了防抓取的功能,你剛一抓幾個(gè)頁面,可能會(huì)被禁止。
建議也就抓10頁數(shù)據(jù)。
其實(shí)不難,你肯定寫的出來。 還有,網(wǎng)上應(yīng)該有很多抓取工具,你找找看,然后將抓下來的數(shù)據(jù)
在做分析。寫入數(shù)據(jù)庫。