當前位置:首頁 » 編程語言 » 數據採集php

數據採集php

發布時間: 2022-09-10 15:50:32

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使用3種方法實現數據採集 什麼叫採集

下面的php代碼可以將HTML表格的每行每列轉為數組,採集表格數據
<?php function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 標記 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字元 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?>

Ⅲ php程序員對數據採集的要求掌握程度如何

數據採集很重要,最好是研究下採集,我工作很多用到採集。

Ⅳ 怎麼用PHP採集別的網上的數據

簡單的有個file_get_content函數,然後寫正則規則匹配內容,存資料庫。
如果需要登陸的,用curl,還有可以用PHP的DOM庫替換正則表達式
python和Java等都有beautifulsoup這個第三方庫,用來採集非常棒

Ⅳ PHP或者python進行數據採集和分析,有什麼比較成熟的框架

Python:
1.requests 很好用的http庫,中文文檔:Requests: 讓 HTTP 服務人類

2.BeautifulSoup 很好用很強大的html解析庫,中文文檔:Beautiful Soup 4.4.0 文檔

3.Scrapy 知名爬蟲框架,中文文檔:Scrapy 0.25 文檔

Ⅵ PHP數據採集

$remark = $_POST['$remark']; 改成 $remark = $_POST[$remark];

Ⅶ 怎麼用php採集網站數據

簡單的分了幾個步驟:
1、確定採集目標
2、獲取目標遠程頁面內容(curl、file_get_contents)
3、分析頁面html源碼,正則匹配你需要的內容(preg_match、preg_match_all),這一步最為重要,不同頁面正則匹配規則不一樣
4、入庫

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

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

Ⅸ php怎樣web伺服器端的數據採集方法

class caiji{
private $reg;//正則
private $url;//數據源
private $dataArr;//返回結果數組

public function __construct($reg,$url){
$this->reg=$reg;
$this->url=$url;
$this->caijStar();
}

private function caijStar(){//採集方法
$conn=file_get_contents("{$this->url}");
$reg="{$this->reg}";
preg_match_all($reg,$conn,$this->dataArr);
}

public function getArr(){//數據獲取方法
return $this->dataArr;
}
}

Ⅹ PHP 數據採集 太慢

一頁一頁采啊,你要是想把N個網頁一下子採下來,在瀏覽器中肯定不行,你可以用php.exe在命令行下運行你的採集腳本。如果你想在瀏覽器上采,你得一次採集一個頁面,然後用window.location.href轉向,把下一個要採集的地址傳過去,這樣一頁一頁的循環來採集。

熱點內容
演算法工作原理 發布:2025-01-12 20:36:38 瀏覽:24
網路訪問監控軟體 發布:2025-01-12 20:26:57 瀏覽:465
養羊啦源碼 發布:2025-01-12 20:25:48 瀏覽:570
軒逸朗逸哪個配置最好 發布:2025-01-12 20:10:00 瀏覽:49
主板存儲器分 發布:2025-01-12 20:04:46 瀏覽:376
資料庫邏輯運算 發布:2025-01-12 20:03:54 瀏覽:571
javawindows伺服器搭建 發布:2025-01-12 19:59:37 瀏覽:570
linux關閉iptables 發布:2025-01-12 19:58:49 瀏覽:150
伺服器電腦名字改了影響資料庫嗎 發布:2025-01-12 19:58:44 瀏覽:652
手機存儲優化 發布:2025-01-12 19:58:43 瀏覽:356