国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP的cURL庫實(shí)現(xiàn)網(wǎng)頁抓取例子介紹

2024-05-04 21:49:46
字體:
供稿:網(wǎng)友

使用PHP的cURL庫可以簡單和有效地去抓網(wǎng)頁,你只需要運(yùn)行一個(gè)腳本,然后分析一下你所抓取的網(wǎng)頁,然后就可以以程序的方式得到你想要的數(shù)據(jù)了,無論是你想從從一個(gè)鏈接上取部分?jǐn)?shù)據(jù),或是取一個(gè)XML文件并把其導(dǎo)入數(shù)據(jù)庫,那怕就是簡單的獲取網(wǎng)頁內(nèi)容,cURL 是一個(gè)功能強(qiáng)大的PHP庫,本文主要講述如果使用這個(gè)PHP庫.

下面是一個(gè)利用cURL庫抓取網(wǎng)頁的簡單例子:

  1. <?php 
  2. $curl = curl_init(); //初始化一個(gè)cURL對(duì)象 
  3. curl_setopt($curl, CURLOPT_URL, 'http://Vevb.com'); //設(shè)置你需要抓取的URL 
  4. curl_setopt($curl, CURLOPT_HEADER, 1); //設(shè)置header 
  5. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //設(shè)置cURL參數(shù) 
  6. $data = curl_exec($curl); //運(yùn)行cURL,請(qǐng)求網(wǎng)頁 
  7. curl_close($curl); //關(guān)閉URL請(qǐng)求 
  8. var_dump($data); //顯示獲得的數(shù)據(jù) 
  9. ?> 

如何POST數(shù)據(jù):上面是抓取網(wǎng)頁的代碼,下面則是向某個(gè)網(wǎng)頁P(yáng)OST數(shù)據(jù),假設(shè)我們有一個(gè)處理表單的網(wǎng)址http://m.survivalescaperooms.com/sendSMS.php,其可以接受兩個(gè)表單域,一個(gè)是電話號(hào)碼,一個(gè)是短信內(nèi)容.

  1. <?php 
  2. $phoneNumber = '13912345678'
  3. $message = 'This message was generated by curl and php'
  4. $curlPost  = 'pNUMBER=' . urlencode($phoneNumber); 
  5. $curlPost .= '&amp;MESSAGE=' . urlencode($message); 
  6. $curlPost .= '&amp;SUBMIT=Send'
  7. $ch = curl_init(); 
  8. curl_setopt($ch, CURLOPT_URL, 'http://m.survivalescaperooms.com/sendSMS.php'); 
  9. curl_setopt($ch, CURLOPT_HEADER, 1); 
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  11. curl_setopt($ch, CURLOPT_POST, 1); 
  12. curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); 
  13. $data = curl_exec();curl_close($ch); 
  14. ?> 

從上面的程序我們可以看到,使用CURLOPT_POST設(shè)置HTTP協(xié)議的POST方法,而不是GET方法,然后以CURLOPT_POSTFIELDS設(shè)置POST的數(shù)據(jù).

關(guān)于代理服務(wù)器:下面是一個(gè)如何使用代理服務(wù)器的示例,請(qǐng)注意其中高亮的代碼,代碼很簡單,我就不用多說了.

  1. <?php 
  2. $ch = curl_init(); 
  3. curl_setopt($ch, CURLOPT_URL, 'http://m.survivalescaperooms.com'); 
  4. curl_setopt($ch, CURLOPT_HEADER, 1); 
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  6. curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
  7. curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); 
  8. curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); 
  9. $data = curl_exec();curl_close($ch); 
  10. ?> 

關(guān)于SSL和Cookie

關(guān)于SSL也就是HTTPS協(xié)議,你只需要把CURLOPT_URL連接中的http://變成https://就可以了,當(dāng)然,還有一個(gè)參數(shù)叫CURLOPT_SSL_VERIFYHOST可以設(shè)置為驗(yàn)證站點(diǎn).

關(guān)于Cookie,你需要了解下面三個(gè)參數(shù):

CURLOPT_COOKIE,在當(dāng)面的會(huì)話中設(shè)置一個(gè)cookie

CURLOPT_COOKIEJAR,當(dāng)會(huì)話結(jié)束的時(shí)候保存一個(gè)Cookie

CURLOPT_COOKIEFILE,Cookie的文件.

HTTP服務(wù)器認(rèn)證:最后,我們來看一看HTTP服務(wù)器認(rèn)證的情況.

  1. <?php 
  2. $ch = curl_init(); 
  3. curl_setopt($ch, CURLOPT_URL, 'http://m.survivalescaperooms.com'); 
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  5. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
  6. curl_setopt(CURLOPT_USERPWD, '[username]:[password]'); 
  7.  
  8. $data = curl_exec(); 
  9. curl_close($ch); 
  10. ?> 

關(guān)于其它更多的內(nèi)容,請(qǐng)參看相關(guān)的cURL手冊(cè).

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 赞皇县| 海南省| 武隆县| 长泰县| 乌恰县| 来安县| 松阳县| 交城县| 石城县| 安岳县| 彰化市| 尉犁县| 泸定县| 永德县| 汕头市| 来安县| 丹凤县| 邵东县| 铁岭县| 班戈县| 浠水县| 启东市| 会东县| 抚松县| 赤壁市| 泰宁县| 湖北省| 滨州市| 蓝山县| 潜江市| 普宁市| 沅陵县| 五台县| 巴楚县| 镇平县| 龙胜| 阿城市| 县级市| 江都市| 萝北县| 怀安县|