一般來說,PHP采集數據最簡單的辦法是使用file_get_content函數,功能更強大的推薦使用cURL函數庫。
專注于為中小企業(yè)提供成都做網站、成都網站設計、成都外貿網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)金秀免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯網行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。
簡單的分了幾個步驟:
1、確定采集目標
2、獲取目標遠程頁面內容(curl、file_get_contents)
3、分析頁面html源碼,正則匹配你需要的內容(preg_match、preg_match_all),這一步最為重要,不同頁面正則匹配規(guī)則不一樣
4、入庫
問題其實不難,自己都能寫。給你幾個思路吧:
1.在百度知道中,輸入linux,然后會出現列表。復制瀏覽器地址欄內容。
然后翻頁,在復制地址欄內容,看看有什么不同,不同之處,就是你要循環(huán)分頁的i值。
當然這個是笨方法。
2.使用php的file或者file_get_contents函數,獲取鏈接URL的內容。
3.通過php正則表達式,獲取你需要的3個字段內容。
4.寫入數據庫。
需要注意的是,百度知道有可能做了防抓取的功能,你剛一抓幾個頁面,可能會被禁止。
建議也就抓10頁數據。
其實不難,你肯定寫的出來。 還有,網上應該有很多抓取工具,你找找看,然后將抓下來的數據
在做分析。寫入數據庫。
這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據服務器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數可以由js產生并傳遞url,php后臺頁面根據URL抓頁面。然后ajax通過php,在數據庫或者是哪里設一個標量,標明檢測到哪里。由于前臺的html頁面執(zhí)行多少時候都沒問題,這樣php的內存限制和執(zhí)行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數據太多,大過了php限制的內存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取后再執(zhí)行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大于30秒的默認執(zhí)行時間。
網站欄目:php采集美圖數據 php自動采集如何實現
轉載來于:http://vcdvsql.cn/article40/dopjiho.html
成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站制作、網站建設、網頁設計公司、動態(tài)網站、全網營銷推廣、定制開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯