導航:首頁 > 編程語言 > php自動抓取

php自動抓取

發布時間:2022-05-05 13:42:15

1. php定時抓取HTML

$time = time();
$file = 'AA.dat';
@$filemtime = filemtime($file);
if($time - $filemtime >60){
$h = fopen($file,'wb+');
$content = file_get_contents('AA.html');
fwrite($h,$content);
fclose($h);
touch($file);
}

試下用strip_tags去除HTML後得到內容,如果再復雜,我就不知了~

2. PHP抓取網頁指定內容

<?php
/*
* 如下: 方法有點笨
* 抓取網頁內容用 PHP 的正則
* 用JS每隔5分鍾刷新當前頁面---即重新獲取網頁內容
*
* 註: $mode中--<title></title>-更改為所需內容(如 $mode = "#<a(.*)</a>#";>獲取所有鏈接)
*
* window.location.href="http://localhost//refesh.php";中的http://localhost//refesh.php
* 更改為自己的URL----作用:即刷新當前頁面
*
* setInterval("ref()",300000);是每隔300000毫秒(即 5 * 60 *1000 毫秒即5分鍾)執行一次函數 ref()
*
* print_r($arr);輸出獲得的所有內容 $arr是一個數組 可根據所需輸出一部分(如 echo $arr[1][0];)
* 若要獲得所有內容 可去掉
* $mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
再加上 echo $content;
*/
$url = "http://www..com"; //目標站
$fp = @fopen($url, "r") or die("超時");

$content=file_get_contents($url);
$mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
//print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
?>
<script language="javaScript" type="text/javascript">
<--
function ref(){
window.location.href="http://localhost//refesh.php";
}
setInterval("ref()",300000);
//-->
</script>

3. 怎麼寫php爬蟲自動抓取百度知道

curl來寫。模擬登陸。抓取頁面。分析標簽。正則匹配你想要的內容。然後存入數據大概就是這樣的流程。

4. PHP如何自動抓取頁面內容,頁面有分頁,我要把分頁中的內容也抓到

你把頁面抓回來,分離出分頁代碼,從中分析出每個分頁的url,再通過url去抓取各分頁

ps:不同網站的分頁代碼部分不盡相同,只能具體問題具體分析

5. php抓取數據

像這樣採集的程序一般把循環的速度搞一下,如果太快,一個網速跟不上,一是伺服器設置了防採集或是防CC攻擊等,如果你每5分鍾採集一次,這樣,肯定不會受到限制,如果你一分鍾採集100或是更多次這伺服器會限制你訪問,認為你是惡意攻擊,明白?就像網路或google 機器人一樣,如果不做限制採集過多,會把伺服器拉死。

6. 如何利用php抓取網站動態產生的數據

$url = "網站地址目錄";
$queryServer = curl_init();
curl_setopt($queryServer, CURLOPT_URL, $url);
curl_setopt($queryServer, CURLOPT_HEADER, 0);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, true);
curl_setopt($queryServer, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($queryServer, CURLOPT_TIMEOUT, 30);
$html = curl_exec($queryServer);
$html = iconv('UTF-8','GBK//IGNORE',$html); //如果你需要是的數據是utf-8編碼的,這一行可以注銷,如果需要gbk編碼的,請保留.如果出現亂碼,就是一行的問題,你自己調著試吧
//echo $holder;exit; 此處可以輸出來測試.
$html = str_replace(array("\n","\r","\t"),"",$html);
$preg = '/<table\s+width=\"800\"[^>]+>(.*?)<\/table>/';
preg_match_all($preg,$html,$out);
//匹配每行
preg_match_all('/<tr[^>]+>(.*?)<\/tr>/',$out[1][0],$tr);
//匹配每個td
$result = array();
$match = '/<td.+>([^<]+)<\/td>/U';
foreach( $tr[0] as $key => $value ){
preg_match_all($match,$value,$arr);
$result[] = $arr[1];
}
//輸出測試,$result就是你要的數據,至於你要怎麼輸出顯示格式,那就隨心調就好了。
foreach( $result as $key => $value ){
echo implode("\t",$value);
echo "<br>";
}
exit;

7. php如何自動獲取一條數據並且保證下次不會獲取這一條

你說的自動獲取是怎麼定義的?進入某頁面讀取嗎?如果用戶刷新(或再次進入本頁面)再獲取另一條嗎?
你要保證下次不會獲取這一條,那就得識別你的用戶了.有一個不算太好的方法來識別,就是保留訪問過的IP和數據的Id,如果某有某IP進入該頁面,則先查一下該IP訪問過的數據ID列表.查詢的時候排除掉.
但用IP來識別用戶是不準確的.一個公司的人都可能用同一IP訪問你的頁面.
主要還是看你的需求,你描述的太不準確了.
====================================
我很多用戶 每個用戶自動獲取數據池的一條數據 並且保證這條數據不會被其它用戶獲取
============================
很奇怪的需求,那有時間約束嗎?還是說被獲到的數據只能且只使用一次.以後就不使用.如果只使用一次,那很簡單,加個欄位標識一下,只要被查詢過,就標記,以後查詢直接忽略掉.
但如果有時間約束,比如三天後就解除標記,那還得弄一個腳本每天晚上去解除標記.
但好象這種需求真是奇怪,還是思考問題的思路有問題?

8. PHP 怎樣自動提取文章中的關鍵詞

一般來說,你可以定義幾種規則來獲取關鍵詞
可以設置一個關鍵詞庫,這些關鍵詞用逗號之類的符號分隔
當錄入一篇文章的時候,匹配設置的關鍵詞庫,當出現次數大於多少次的詞語,定義為關鍵詞.

9. php自動抓取淘寶訂單號和支付寶交易號存入資料庫的代碼

你這個想法很好,但是實現起來很麻煩,首先你需要淘寶對你開放API介面才行,然後寫代碼有事一個難事,不過我知道有一個軟體是可以實現的,甩手掌櫃,只需要綁定你的淘寶賬號就可以,因為他們一個公司,和淘寶合作,淘寶對其開放API,然後一個團隊寫代碼,所以是可以實現的。不光可以自動下載訂單,還可以輕松管理商品,列印發貨單,進銷存管理等等!

10. php每天抓取數據並更新新

以前我用過querylist插件抓數據,伺服器寫和定時器,每天固定時間去運行腳本。朝這個方式試試
高並發下數據的更新,應該 update table xxx set num = num - 1 的方式,這種方式可以保證數據的正確性。
但是會出現 num 為負數的問題,如果庫存為負數,顯然是不合理的。
於是,需要將 num 欄位設置為 無符號整型,這樣就不會出現負數了,因為,如果減到負數,就會更新失敗。
但是這種依然會造成很多無用的更新語句的執行,是不合理的。
於是,update table xxx set num = num - 1 where num > 0,
這樣當 num 等於0之後就不會去更新資料庫了,減少了很多無用的開銷。
這種方式被稱作「樂觀鎖」
此外,對於搶紅包這種非整數的操作,我們應該轉換為整數的操作。
關於搶購超賣的控制
一般搶購功能是一個相對於正常售賣系統來說獨立的子系統,這樣既可以防止搶購時的高並發影響到正常系統,
也可以做到針對於搶購業務的特殊處理。
在後台設計一些功能,可以就昂正常的商品加入到搶購活動中並編輯成為搶購商品,寫入到搶購商品表,當然
也可以把搶購商品表寫入redis而不是數據表。並且在原商品表寫入一個同樣的商品(id相同,用於訂單查看,
此商品不可購買)
如果是數據表,為了控制超賣,需要對表進行行鎖,更新的時候帶上 where goods_amount > 0。
如果是redis,使用 hincrby 一個負數來減庫存,並且 hincrby 會返回改變後的值,再來判斷返回值是否大於0,
因為redis每個命令都是原子性的,這樣不用鎖表就可控制超賣。

閱讀全文

與php自動抓取相關的資料

熱點內容
安卓qq郵箱格式怎麼寫 瀏覽:429
如何電信租用伺服器嗎 瀏覽:188
編程中計算根號的思維 瀏覽:181
可愛的程序員16集背景音樂 瀏覽:446
軟體代碼內容轉換加密 瀏覽:795
什麼app看電視不要錢的 瀏覽:16
烏班圖怎麼安裝c語言編譯器 瀏覽:278
plc通訊塊編程 瀏覽:923
我的世界伺服器怎麼清地皮 瀏覽:421
ftp伺服器如何批量改名 瀏覽:314
網易我的世界伺服器成員如何傳送 瀏覽:268
公司雲伺服器遠程訪問 瀏覽:633
法哲學pdf 瀏覽:637
清大閱讀app是什麼 瀏覽:447
怎麼用qq瀏覽器整體解壓文件 瀏覽:585
肺組織壓縮15 瀏覽:270
安卓手機為什麼換電話卡沒反應 瀏覽:797
諸子集成pdf 瀏覽:339
php注冊框代碼 瀏覽:717
手機加密好還是不加好好 瀏覽:815