『壹』 php https數據採集
1:curl抓取html
2:用正則截取你需要的內容,或則用explode分割獲取內容,還有phpquery等可以像jquery一樣使用選擇器獲取你需要的內容
『貳』 PHP中怎樣實現文章採集
只舉例說明,生產環境你自己根據情景去搞
$url = 'www.domain.com';
$content = file_get_content($url);//抓取網頁全部內容
preg_match( string pattern, string subject [, array matches ] );//正則獲取自己需要的內容
入庫~
完事了。。。
當然,情形復雜,例如需要登錄,採集目標限制等問題,這再說...
實際使用的時候,可以直接使用Snoopy類,提供好多方法供使用,比自己去造輪子要安全,當然,你可以在她的基礎上再去造輪子~~~
『叄』 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採集多個tr中的內容如何做
<?php
$dom = new DOMDocument();
$dom->loadHTML($html);
$props = array();
$xpath = new DOMXPath($dom);
$trNodes = $xpath->query("//tr");
foreach($trNodes as $trNode) {
$thNodes = $xpath->query("./th");
$tdNodes = $xpath->query("./td");
if($thNodes->length == 0 || $tdNodes->length == 0) continue;
props[$thNodes->item(0)->nodeValue] = $tdNodes->item(0)->nodeValue;
}
var_mp($props);
『伍』 用JS翻頁的網頁如何用PHP實現採集
最簡單的辦法就是在你的所有中文頁面上,一般在導航位置加一個英文頁面首頁的超鏈接。這樣用戶點英文那個鏈接就進入英文頁面了。同樣的,在所有的英文頁面導航位置都加一個中文首頁鏈接。推薦你用圖片做這兩個鏈接,這樣不會因為用戶沒有裝對應的語言系統而出現奇怪字元。比如歐美用戶一般是不會裝中文系統的,頁面上有中文字元的時候必然顯示為亂碼。
網站目錄當然要為中文和英文各建一個獨立的目錄,裡面放置各自的頁面了。
如果使用資料庫的話,則思路是一樣的。
『陸』 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秒的默認執行時間。