php數(shù)據(jù)采集方法 php采集器

php 怎么POST獲取數(shù)據(jù)?

方法1、最常見的方法是:$_POST['fieldname'];

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比射洪網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式射洪網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋射洪地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

說明:只能接收Content-Type:

application/x-www-form-urlencoded提交的數(shù)據(jù)

解釋:也就是表單POST過來的數(shù)據(jù)

方法2、file_get_contents("php://input");

說明:

允許讀取

POST

原始數(shù)據(jù)

$HTTP_RAW_POST_DATA

比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的

php.ini

設(shè)置。

php://input

不能用于

enctype="multipart/form-data"。

解釋:

對于未指定

Content-Type

的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”);來獲取原始數(shù)據(jù)。

事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括

二進(jìn)制文件

流也可以。

所以用方法二是最保險(xiǎn)的方法

方法3、$GLOBALS['HTTP_RAW_POST_DATA'];

說明:

總是產(chǎn)生

$HTTP_RAW_POST_DATA

變量包含有原始的

POST

數(shù)據(jù)。

此變量僅在碰到未識別

MIME

類型的數(shù)據(jù)時(shí)產(chǎn)生。

$HTTP_RAW_POST_DATA

對于

enctype="multipart/form-data"

表單數(shù)據(jù)不可用

如果post過來的數(shù)據(jù)不是PHP能夠識別的,可以用

$GLOBALS['HTTP_RAW_POST_DATA']來接收,

比如

text/xml

或者

soap

等等

解釋:

$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數(shù)據(jù)。

$_POST或

$_REQUEST

存放的是

PHP以key=value的形式格式化以后的數(shù)據(jù)。

但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí)

必須顯式示指明Content-Type:

application/x-www-form-urlencoded,POST的數(shù)據(jù)才會存放到

$GLOBALS['HTTP_RAW_POST_DATA']中

php如何采集js生成的內(nèi)容

訪問需要采集的頁面,如果數(shù)據(jù)是用js輸出的html,那么必定有接口或者本身頁面中給js提供了數(shù)據(jù),來遍歷輸出html。

用chrome的審查元素中的network,可以單獨(dú)看xhr,看看是否是ajax請求的接口,如果數(shù)據(jù)是從接口來的,直接用PHP去獲取那個(gè)接口的數(shù)據(jù)就可以了。

如果沒有ajax請求,查看html源代碼,在里面找數(shù)據(jù)。

php 百度 知道數(shù)據(jù)采集

問題其實(shí)不難,自己都能寫。給你幾個(gè)思路吧:

1.在百度知道中,輸入linux,然后會出現(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è)頁面,可能會被禁止。

建議也就抓10頁數(shù)據(jù)。

其實(shí)不難,你肯定寫的出來。 還有,網(wǎng)上應(yīng)該有很多抓取工具,你找找看,然后將抓下來的數(shù)據(jù)

在做分析。寫入數(shù)據(jù)庫。

php curl 大量數(shù)據(jù)采集

這個(gè)需要配合js,打開一個(gè)html頁面,首先js用ajax請求頁面,返回第一個(gè)頁面信息確定處理完畢(ajax有強(qiáng)制同步功能),ajax再訪問第二個(gè)頁面。(或者根據(jù)服務(wù)器狀況,你可以同時(shí)提交幾個(gè)URL,跑幾個(gè)相同的頁面)

參數(shù)可以由js產(chǎn)生并傳遞url,php后臺頁面根據(jù)URL抓頁面。然后ajax通過php,在數(shù)據(jù)庫或者是哪里設(shè)一個(gè)標(biāo)量,標(biāo)明檢測到哪里。由于前臺的html頁面執(zhí)行多少時(shí)候都沒問題,這樣php的內(nèi)存限制和執(zhí)行時(shí)間限制就解決了。

因?yàn)椴粫速M(fèi)大量的資源用一個(gè)頁面來跑一個(gè)瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過了php限制的內(nèi)存)

不過印象中curl好像也有強(qiáng)制同步的選項(xiàng),就是等待一個(gè)抓取后再執(zhí)行下一步。但是這個(gè)500次都是用一個(gè)頁面線程處理,也就是說肯定會遠(yuǎn)遠(yuǎn)大于30秒的默認(rèn)執(zhí)行時(shí)間。

怎么用php采集網(wǎng)站數(shù)據(jù)

簡單的分了幾個(gè)步驟:

1、確定采集目標(biāo)

2、獲取目標(biāo)遠(yuǎn)程頁面內(nèi)容(curl、file_get_contents)

3、分析頁面html源碼,正則匹配你需要的內(nèi)容(preg_match、preg_match_all),這一步最為重要,不同頁面正則匹配規(guī)則不一樣

4、入庫

47-網(wǎng)頁獲取數(shù)據(jù)的方法(get-post)

通過網(wǎng)頁表單獲取的數(shù)據(jù),在php文件中呈現(xiàn),利用php方法中的$_GET方法接受,提交的數(shù)據(jù)為一個(gè)字典。

1、通過輸入網(wǎng)址請求服務(wù)器中的html文件,服務(wù)器接受請求文件,進(jìn)行處理

2、服務(wù)器接收后,處理成響應(yīng)報(bào)文進(jìn)行返回到用戶瀏覽器界面

3、第二次在html的表單中提交的數(shù)據(jù)會形成請求報(bào)文到服務(wù)器中,php文件接受數(shù)據(jù)并進(jìn)行處理

4、服務(wù)器中php文件接收后會處理并返回響應(yīng)文件呈現(xiàn)到用戶瀏覽器界面

將form表單中的method的取值改成post就是以post的方式將文件放給服務(wù)器。

1、相同點(diǎn)

2、不同點(diǎn)

文章題目:php數(shù)據(jù)采集方法 php采集器
地址分享:http://www.muchs.cn/article4/doseooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、用戶體驗(yàn)、域名注冊、云服務(wù)器

廣告

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

商城網(wǎng)站建設(shè)