導航:首頁 > 編程語言 > php採集數據

php採集數據

發布時間:2022-12-08 14:11:37

A. php curl 大量數據採集

這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據伺服器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數可以由js產生並傳遞url,php後台頁面根據URL抓頁面。然後ajax通過php,在資料庫或者是哪裡設一個標量,標明檢測到哪裡。由於前台的html頁面執行多少時候都沒問題,這樣php的內存限制和執行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環了。(你的500次for循環死了原因可能是獲取的數據太多,大過了php限制的內存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取後再執行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大於30秒的默認執行時間。

B. php怎麼抓取其它網站數據

可以用以下4個方法來抓取網站 的數據:

1. 用 file_get_contents 以 get 方式獲取內容:
?

$url = 'http://localhost/test2.php';
$html = file_get_contents($url);
echo $html;

2. 用fopen打開url,以get方式獲取內容
?

$url = 'http://localhost/test2.php';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);

3. 用file_get_contents函數,以post方式獲取url
?

$data = array(
'foo'=>'bar',
'baz'=>'boom',
'site'=>'www.jb51.net',
'name'=>'nowa magic');

$data = http_build_query($data);

//$postdata = http_build_query($data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $data
//'timeout' => 60 * 60 // 超時時間(單位:s)
)
);

$url = "http://localhost/test2.php";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

echo $result;

4、使用curl庫,使用curl庫之前,可能需要查看一下php.ini是否已經打開了curl擴展

$url = 'http://localhost/test2.php?site=jb51.net';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;

C. PHP數據採集問題(相對地址轉絕對地址)

其實用不著這么麻煩的,採集時,你看到的圖片路徑是相對地址,是相對當前域名的一個相對路徑而已,你只要在前面加上
http://當前域名(採集內容的域名,比如..com)/
就是它的絕對地址了,
就像/abc.jpg一樣
http://當前域名(採集內容的域名,比如..com)/abc.jpg就是絕對地址了
沒必要搞復雜

D. php 百度 知道數據採集

問題其實不難,自己都能寫。給你幾個思路吧:
1.在網路知道中,輸入linux,然後會出現列表。復制瀏覽器地址欄內容。
然後翻頁,在復制地址欄內容,看看有什麼不同,不同之處,就是你要循環分頁的i值。
當然這個是笨方法。
2.使用php的file或者file_get_contents函數,獲取鏈接URL的內容。
3.通過php正則表達式,獲取你需要的3個欄位內容。
4.寫入資料庫。

需要注意的是,網路知道有可能做了防抓取的功能,你剛一抓幾個頁面,可能會被禁止。
建議也就抓10頁數據。

其實不難,你肯定寫的出來。 還有,網上應該有很多抓取工具,你找找看,然後將抓下來的數據
在做分析。寫入資料庫。

E. php怎麼使用隊列來處理批量採集

首先,隊列的作用不是批量處理,而是延時處理,也叫非同步處理
要做批量採集的話,首先你要劃分好區間,可以用php的多進程,也可以用php的cli模式做,只要數據不竄就行

F. php 怎樣 採集到 阿里巴巴的商品信息

<?php

classalibaba_analyse{

var$code;
var$price;

var$info;

//你的錯誤位置,構造函數是__construct,而不是__constructs
publicfunction__construct($keywords)
{
//http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=頁面是GBK編碼,所以需要先轉成GBK,在進行URL編碼.
$u="http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=".urlencode(iconv('UTF-8','GB2312',$keywords));
$this->code=file_get_contents($u);
}

publicfunctionget_price()
{
/*
價格是在<spanclass="sw-ui-font-priceIcon">450<spanclass="smallSize">.00</span><spanclass="priceUnit"></span></span>這樣的欄位中.
而不是在<divclass="pricef12c-e1">.*([d.]+?).*</div>中
preg_match_all('/<divclass="pricef12c-e1">.*([d.]+?).*</div>/sU',$this->code,$price);
*/
preg_match_all('/<spanclass="sw-ui-font-priceIcon">(d+)(?:<spanclass="smallSize">)([.d]{3})?</span>/sU',$this->code,$price,PREG_SET_ORDER);

/*
得到的數據格式,所以需要使用array_map整理價格
Array
(
[0]=>Array
(
[0]=><spanclass="sw-ui-font-priceIcon">570<spanclass="smallSize">.00</span>
[1]=>570
[2]=>.00
)
....
)
*/
$this->price=array_map(create_function('$a','return$a[1].$a[2];'),$price);
}

}

$ali=newalibaba_analyse("聯想筆記本");
$ali->get_price();

print_r($ali->price);


代碼給出了, 而且經過了測試. 代碼中有註解.

你自己拷貝過去試試吧


希望能夠採納!,能當成優質答案就最好啦.!

G. php如何防止網站內容被採集

1、限制IP地址單位時間的訪問次數
分析:沒有哪個常人一秒鍾內能訪問相同網站5次,除非是程序訪問,而有這種喜好的,就剩下搜索引擎爬蟲和討厭的採集器了。
弊端:一刀切,這同樣會阻止搜索引擎對網站的收錄
適用網站:不太依靠搜索引擎的網站
採集器會怎麼做:減少單位時間的訪問次數,減低採集效率
2、屏蔽ip
分析:通過後台計數器,記錄來訪者ip和訪問頻率,人為分析來訪記錄,屏蔽可疑Ip。
弊端:似乎沒什麼弊端,就是站長忙了點
適用網站:所有網站,且站長能夠知道哪些是google或者網路的機器人
採集器會怎麼做:打游擊戰唄!利用ip代理採集一次換一次,不過會降低採集器的效率和網速(用代理嘛)。
3、利用js加密網頁內容
Note:這個方法我沒接觸過,只是從別處看來
分析:不用分析了,搜索引擎爬蟲和採集器通殺
適用網站:極度討厭搜索引擎和採集器的網站
採集器會這么做:你那麼牛,都豁出去了,他就不來采你了
4、網頁里隱藏網站版權或者一些隨機垃圾文字,這些文字風格寫在css文件中
分析:雖然不能防止採集,但是會讓採集後的內容充滿了你網站的版權說明或者一些垃圾文字,因為一般採集器不會同時採集你的css文件,那些文字沒了風格,就顯示出來了。
適用網站:所有網站
採集器會怎麼做:對於版權文字,好辦,替換掉。對於隨機的垃圾文字,沒辦法,勤快點了。
5、用戶登錄才能訪問網站內容
分析:搜索引擎爬蟲不會對每個這樣類型的網站設計登錄程序。聽說採集器可以針對某個網站設計模擬用戶登錄提交表單行為。
適用網站:極度討厭搜索引擎,且想阻止大部分採集器的網站
採集器會怎麼做:製作擬用戶登錄提交表單行為的模塊

H. 怎樣用php 採集百度地圖的數據

一般來說,PHP採集數據最簡單的辦法是使用file_get_content函數,功能更強大的推薦使用cURL函數庫。

I. PHP ,採集到的數據,如何分組放入資料庫裡面

愚見:
用函數explode(",",$hq_str_sh601006)
能把字元串按照逗號分開。可以直接賦值給一個數組變數。
如:$hq_str_arr=explode(",",$hq_str_sh601006);
然後你自己可以從數組中按照你獲取的順序給數組中相應的元素賦值給資料庫的對應欄位。
希望有幫助。

閱讀全文

與php採集數據相關的資料

熱點內容
數控三通編程 瀏覽:298
linux多終端 瀏覽:811
法律寫作pdf 瀏覽:144
國貨哪個品牌最好app 瀏覽:951
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:649
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263
內核命令行 瀏覽:324
腳本提取源碼器 瀏覽:930
smo源碼 瀏覽:877
為什麼要搭建單獨伺服器 瀏覽:480
編譯器有什麼控制 瀏覽:893
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:647
解密塔羅牌小程序源碼 瀏覽:862