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

php數據採集代碼

發布時間:2023-09-08 22:30:34

❶ 怎樣利用php獲取資料庫中指定的記錄

1.增刪改只在SQL語句上不同。都使用的是PHP的query函數。如果是MSSQL資料庫那麼query函數就是mssql_query($sql);如果是MYSQL那就是mysql_query($sql);2.操作原理就是(1)首先建立與資料庫伺服器的連接(2)選擇要操作的資料庫(3)利用資料庫的會話句柄來對所選擇的資料庫進行SQL語句查詢給你舉例。查詢XXX表的所有數據-----建立資料庫連接部分---<?php$hostname="資料庫所在的計算機名或者IP地址";$dbuser="sa";//資料庫的用戶名$dbpass=""; //資料庫密碼$dbname="test";//要訪問的資料庫名 $link=@mssql_connect($hostname,$dbuser,$dbpass) or die ("連接資料庫出錯"); //$link就是以後查詢用到的會話句柄。@mssql_select_db($dbname);//進行增刪改的查詢$sql="select * from XXX";@mssql_query($sql,$link);?>到此,SQL語句就執行完了。

❷ 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);


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

你自己拷貝過去試試吧


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

❸ 用PHP進行數據採集

$strPreg = "|<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>|U";

搞定了才發現你都沒懸賞分。。。

❹ php採集大數據的方案

1、建議你讀寫數據和下載圖片分開,各用不同的進程完成。
比如說,取數據用get-data.php,下載圖片用get-image.php。

2、多進程的話,php可以簡單的用pcntl_fork()。這樣可以並發多個子進程。
但是我不建議你用fork,我建議你安裝一個gearman worker。這樣你要並發幾個,就啟幾個worker,寫代碼簡單,根本不用在代碼里考慮thread啊,process等等。

3、綜上,解決方案這樣:
(1)安裝gearman worker。
(2)寫一個get-data.php,在crontab里設置它每5分鍾執行一次,只負責讀數據,然後把讀回來的數據一條一條的扔到 gearman worker的隊列里;
然後再寫一個處理數據的腳本作為worker,例如叫process-data.php,這個腳本常駐內存。它作為worker從geraman 隊列里讀出一條一條的數據,然後跟你的資料庫老數據比較,進行你的業務邏輯。如果你要10個並發,那就啟動10個process-data.php好了。處理完後,如果圖片地址有變動需要下載圖片,就把圖片地址扔到 gearman worker的另一個隊列里。
(3)再寫一個download-data.php,作為下載圖片的worker,同樣,你啟動10個20個並發隨便你。這個進程也常駐內存運行,從gearman worker的圖片數據隊列里取數據出來,下載圖片

4、常駐進程的話,就是在代碼里寫個while(true)死循環,讓它一直運行好了。如果怕內存泄露啥的,你可以每循環10萬次退出一下。然後在crontab里設置,每分鍾檢查一下進程有沒有啟動,比如說這樣啟動3個process-data worker進程:
* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'

不知道你明白了沒有

閱讀全文

與php數據採集代碼相關的資料

熱點內容
java的webxml配置 瀏覽:962
如何封包遠程注入伺服器 瀏覽:864
監測機構資金動向源碼 瀏覽:967
android狀態欄字體50 瀏覽:767
python如何判斷文件後綴 瀏覽:126
龍空app哪裡下 瀏覽:348
阿里雲伺服器搭建網盤 瀏覽:689
京東軟體程序員 瀏覽:805
php游戲伺服器框架 瀏覽:391
導航開發演算法 瀏覽:430
為什麼30歲還想轉行程序員 瀏覽:380
推薦演算法的使用 瀏覽:40
javaswing表格 瀏覽:470
sql和python處理excel 瀏覽:107
家用材料製作解壓玩具 瀏覽:912
c盤解壓失敗可以用空間嗎 瀏覽:466
3d循環音樂哪個app好 瀏覽:771
壓縮文件zip怎麼解壓不了 瀏覽:393
如何看蘋果appstore軟體是否收費 瀏覽:463
android發送字元串 瀏覽:14