這篇文章將為大家詳細講解有關(guān)PHP爬取網(wǎng)頁的主要方法是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)公司專注于二道網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供二道營銷型網(wǎng)站建設(shè),二道網(wǎng)站制作、二道網(wǎng)頁設(shè)計、二道網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造二道網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供二道網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
主要流程就是獲取整個網(wǎng)頁,然后正則匹配(關(guān)鍵的)。
PHP抓取頁面的主要方法,有幾種方法是網(wǎng)上前輩的經(jīng)驗,現(xiàn)在還沒有用到的,先存下來以后試試。
1.file()函數(shù)
2.file_get_contents()函數(shù)
3.fopen()->fread()->fclose()模式
4.curl方式 (本人主要用這個)
5.fsockopen()函數(shù) socket模式
6.插件(如:http://sourceforge.net/projects/snoopy/)
7.file()函數(shù)
2.使用
file_get_contents
方法實現(xiàn),比較簡單。使用
file_get_contents
和fopen必須空間開啟allow_url_fopen
。方法:編輯php.ini,設(shè)置allow_url_fopen = On
,allow_url_fopen關(guān)閉時fopen和file_get_contents
都不能打開遠程文件。$url="[http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml](http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml)"; $html=file_get_contents($url); //如果出現(xiàn)中文亂碼使用下面代碼` //$getcontent = iconv("gb2312", "utf-8",$html); echo"";3.
fopen()->fread()->fclose()
模式 ,目前還沒用過,看到了就先記下了4.使用curl實現(xiàn)(本人一般使用這個)。
使用curl必須空間開啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號去掉,而且需 要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴展。
(.*?)<\/script>/',$res,$arr_all);//這個網(wǎng)頁中數(shù)據(jù)通過js包過來,所以直接抓js就可以 preg_match_all('/"id"\:"(.*?)",/',$arr_all[1][1],$arr1);//從js塊中匹配要的數(shù)據(jù) $list = array_unique($arr1[1]);//(可?。┍WC不重復(fù) //以下則是同理,循環(huán)則可 for($i=0;$i<=6;$i=$i+2){ $detail_url = 'ht*****em/'.$list[$i]; $detail_res = curl_get_contents($detail_url); preg_match_all('/