php網(wǎng)站制作中curl采集需要注意的一些地方和技巧

2023-03-17    分類: 網(wǎng)站建設(shè)

PHP網(wǎng)站制作中經(jīng)常需要采集其他網(wǎng)站的數(shù)據(jù),有些細節(jié)問題會導(dǎo)致遇到很大麻煩,至于攻防采集在此不細說,下面創(chuàng)新互聯(lián)記錄一下采集過程中的幾個要點需要注意的地方
1、首先要獲取到對方網(wǎng)址的所有內(nèi)容,可能你會想到用file_gets_contents來獲取,但此函數(shù)不適合用于獲取遠程文件,用于打開本地txt文件還是蠻好用的。那么用什么來獲取呢?Curl,這個php的擴展來處理。下面就是一個簡單的獲取網(wǎng)頁內(nèi)容的基本配置,更多參數(shù)配置可以到網(wǎng)上去搜。
php網(wǎng)站制作
2、在采集網(wǎng)頁匹配數(shù)據(jù)時,特別是在列表頁,可以先把獲取到的對方所有的空格換行等html標(biāo)簽去掉,寫起正則來就會容易很多。這里提供一個函數(shù):cul采集函數(shù)
3、在獲取到對方的數(shù)據(jù)的時候就要開始正則匹配了,這里介紹幾個常有的匹配規(guī)則:
一個是任意字符(.*?),另一個是([\s\S]*?)表示包括換行符的任意字符,在匹配過程中夠用了。然后選擇匹配模式i即可。
4、介紹一下采集的思路,可以先把符合頁面的數(shù)據(jù)下載下來保存為txt文件,再來本地處理就更快一些。還有就是為了避免頻繁訪問對方網(wǎng)站或數(shù)據(jù)丟失狀態(tài)可以加一個while(){}循環(huán)或是sleep()暫停幾秒來處理。把相關(guān)的數(shù)據(jù)庫處理函數(shù)要封裝好,直接調(diào)用。
5、還有一個重要的事情,很多人可能會忽略,就是頁面的編碼問題,如果對方網(wǎng)站是gbk的編碼,則相應(yīng)的php文件或是用于提交條件的html文件也會是gbk的編碼。但是這會存在一個問題,就是發(fā)生在gbk的html向gbk的php頁面提交中文數(shù)據(jù)的時候,gbk的php文件可能就不會給你反應(yīng),如果你用這些中文數(shù)據(jù)去匹配的時候會遇到問題。于是要轉(zhuǎn)變思路,utf-8是好的編碼模式,所以我們要采用utf-8的編碼,而對方的又是gbk的,如何做呢?
$allcontent =iconv('gbk', 'utf-8',removetag(curl_exec($ch)));
上面的這樣轉(zhuǎn)換就ok了!所有的都用utf-8

本文題目:php網(wǎng)站制作中curl采集需要注意的一些地方和技巧
文章轉(zhuǎn)載:http://www.muchs.cn/news21/245071.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、做網(wǎng)站、企業(yè)網(wǎng)站制作、移動網(wǎng)站建設(shè)、云服務(wù)器小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)