php抓取鏈接
『壹』 php如何獲取網址中的參數
比如有一個網址為
http://域名/goods.php?u=59&id=24#pinglun
我想得到這個id值
可以用正則,也可以用php函數解析到數組中
用正則可以這樣
preg_match('/id=(d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 這個表示當前網址url
print_r($m[1]);exit;
或者用parse_url()及parse_str()函數
$cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);
parse_str($cur_q,$myArray);
print_r($myArray["id"]);exit;
拓展資料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
PHP的特性包括:
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。
3. PHP支持幾乎所有流行的資料庫以及操作系統。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
參考資料:網路 PHP
『貳』 PHP如何遍歷指定文件夾,獲取所有文件列表並生成下載鏈接
試編寫代碼如下:
<?php
$dir="D:/WWW/ftp";//指定的路徑
$sitepath='http://localhost/ftp/';
//遍歷文件夾下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目錄下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//關閉句柄
closedir($handle);
}
?>
代碼中需要提示的是:
如果是運行於互聯網上,需要考慮文件的訪問安全性。
運行截圖:
『叄』 如何用PHP抓取此鏈接的動態視頻地址
看你是什麼視頻,
如果是一些視頻網站像優酷土豆之類的,把滑鼠放到正在播放的視頻上,就會在右邊滑出分享菜單,根據你的需求復制相應格式的視頻地址代碼就行。
如果是一些小網站上自己上傳在主機空間的小視頻,你可以用IE打開,在確定你的電腦中裝了迅雷的情況下,把滑鼠放到視頻上,就會有迅雷的下載提示,點擊下載,然後在確認對話框中,你會看到一個視頻的地址,復制它就可以。
另外一個辦法就是在頁面空白的地址點擊右鍵,查看頁面源代碼,然後在代碼中找到<embed>這一對標簽,然後這對標簽里的src="",在src後面的一對引號是的地址就是視頻地址,你可以復制到瀏覽器來打開試試。
『肆』 使用PHP的cURL庫進行網頁抓取
使用模明仿PHP的cURL庫可以簡單和有效地去抓網頁 你只需要運行一個腳本 然後分析一下你所抓取的網頁 然後就可以以程序的方式得到你想要的數據了 無論是你想從從一個鏈接上取部分數據 或是取一個XML文件並把其導入資料庫 那怕就是簡單的獲取網頁內容 cURL 是一個功能強大的PHP庫 本文主要講述如果使用這個PHP庫
啟用 cURL 設置
首先 我們得先要確定我們的PHP是否開啟了這個庫 你可以通過使用php_info()函數來得到這一信息
﹤?phpphpinfo();?﹥
如果你可以在網頁上看到下面的輸出 那麼表示cURL庫已被開啟
如果你看到的話 那麼你需要設置你的PHP並開啟這個庫 如果你是在Windows平台下 那麼非常簡單 你需要改一改你的php ini文件的設置 找到php_curl dll 並取消前面的分號注釋就行了 如下所示
//取消下在的注釋extension=php_curl dll
如果你旦纖是在Linux下面 那麼 你需要重新編譯你的PHP了 編輯時 你需要打開編譯參數——在configure命令上加上 –with curl 參數
一個小示例
如果一切就緒 下面是一個小常式
﹤?php// 初始化一個 cURL 對象$curl = curl_init();
// 設置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );
// 設置headercurl_setopt($curl CURLOPT_HEADER );
// 設置cURL 參數 要求結果保存到字元串中還是輸出到屏幕上槐鏈 curl_setopt($curl CURLOPT_RETURNTRANSFER );
// 運行cURL 請求網頁$data = curl_exec($curl);
// 關閉URL請求curl_close($curl);
// 顯示獲得的數據var_mp($data);
如何POST數據
上面是抓取網頁的代碼 下面則是向某個網頁POST數據 假設我們有一個處理表單的網址// example /sendSMS php 其可以接受兩個表單域 一個是電話號碼 一個是簡訊內容
﹤?php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) &MESSAGE= urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥
從上面的程序我們可以看到 使用CURLOPT_POST設置HTTP協議的POST方法 而不是GET方法 然後以CURLOPT_POSTFIELDS設置POST的數據
關於代理伺服器
下面是一個如何使用代理伺服器的示例 請注意其中高亮的代碼 代碼很簡單 我就不用多說了
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy : );curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥ 關於SSL和Cookie
關於SSL也就是HTTPS協議 你只需要把CURLOPT_URL連接中的//變成//就可以了 當然 還有一個參數叫CURLOPT_SSL_VERIFYHOST可以設置為驗證站點
關於Cookie 你需要了解下面三個參數
CURLOPT_COOKIE 在當面的會話中設置一個cookie
CURLOPT_COOKIEJAR 當會話結束的時候保存一個Cookie
CURLOPT_COOKIEFILE Cookie的文件
HTTP伺服器認證
最後 我們來看一看HTTP伺服器認證的情況
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD [username]:[password] )
$data = curl_exec();curl_close($ch);?﹥
關於其它更多的內容 請參看相關的cURL手冊 lishixin/Article/program/PHP/201311/21491
『伍』 萬能採集網站php源碼
php獲取網頁源碼內容有哪些辦法可以參考以下幾種方法:
方法一:file_get_contents獲取
spanstyle="white-space:pre"?/span$url="";
spanstyle="white-space:pre"?/span$fh=file_get_contents
('');spanstyle="white-space:pre"?/spanecho$fh;
方法二:使用fopen獲取網頁源代碼
spanstyle="white-space:pre"?/span$url="";
spanstyle="white-space:pre"?/span$handle=fopen($url,"rb");
spanstyle="white-space:pre"?/span$contents="";
spanstyle="white-space:pre"?/spanwhile(!feof($handle)){
spanstyle="white-space:pre"??/span$contents.=fread($handle,8192);
spanstyle="white-space:pre"?/span}
spanstyle="white-space:pre"?/spanfclose($handle);
spanstyle="white-space:pre"?/spanecho$contents;//輸出獲取到得內容。
方法三:使用CURL獲取網頁源代碼
$url="";
$UserAgent='Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;SLCC1;.NETCLR2.0.50727;.NETCLR3.0.04506;.NETCLR3.5.21022;.NETCLR1.0.3705;.NETCLR1.1.4322)'
$curl=curl_init();?//創建一個新的CURL資源
curl_setopt($curl,CURLOPT_URL,$url);?//設置URL和相應的選項
curl_setopt($curl,CURLOPT_HEADER,0);?//0表示不輸出Header,1表示輸出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);?//設定是否顯示頭信息,1顯示,0不顯示。//如果成功只將結果返回,不自動輸出任何內容。如果失敗返回FALSE
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_ENCODING,'');?//設置編碼格式,為空表示支持所有格式的編碼
//header中「Accept-Encoding:」部分的內容,支持的編碼格式為:"identity","deflate","gzip"。
curl_setopt($curl,CURLOPT_USERAGENT,$UserAgent);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
//設置這個選項為一個非零值(象「Location:「)的頭,伺服器會把它當做HTTP頭的一部分發送(注意這是遞歸的,PHP將發送形如「Location:「的頭)。
$data=curl_exec($curl);
echo$data;
//echocurl_errno($curl);//返回0時表示程序執行成功
curl_close($curl);?//關閉cURL資源,並釋放系統資源
拓展資料
PHP(外文名:PHP:HypertextPreprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。
用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。