簡(jiǎn)單的分了幾個(gè)步驟:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)頁空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、順河網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、確定采集目標(biāo)
2、獲取目標(biāo)遠(yuǎn)程頁面內(nèi)容(curl、file_get_contents)
3、分析頁面html源碼,正則匹配你需要的內(nèi)容(preg_match、preg_match_all),這一步最為重要,不同頁面正則匹配規(guī)則不一樣
4、入庫
php數(shù)據(jù)采集常見技術(shù)要領(lǐng):
1、熟練正則表達(dá)式提取數(shù)據(jù)技術(shù):提取內(nèi)容關(guān)鍵步驟
2、熟練字符編碼轉(zhuǎn)換分析技術(shù):兼容性管理以及數(shù)據(jù)有效性控制
3、熟練數(shù)據(jù)出庫入庫整理技術(shù):對(duì)已采集內(nèi)容的存儲(chǔ)管理,包括數(shù)據(jù)庫以及文件和進(jìn)度
4、發(fā)掘數(shù)據(jù)以及網(wǎng)站爬行技術(shù):分析網(wǎng)站結(jié)構(gòu),簡(jiǎn)化爬行手法,提高效率
5、反反采集處理技術(shù):對(duì)于存在反采集的目標(biāo)對(duì)象而設(shè)計(jì)的反反采集技術(shù)
6、多服務(wù)器并發(fā)采集管理技術(shù):提高效率的工作方法
7、數(shù)據(jù)整理分析技術(shù):查漏驗(yàn)證數(shù)據(jù)正確性有效性
8、自我身份保護(hù)技術(shù):自身信息的保護(hù)
這個(gè)需要配合js,打開一個(gè)html頁面,首先js用ajax請(qǐng)求頁面,返回第一個(gè)頁面信息確定處理完畢(ajax有強(qiáng)制同步功能),ajax再訪問第二個(gè)頁面。(或者根據(jù)服務(wù)器狀況,你可以同時(shí)提交幾個(gè)URL,跑幾個(gè)相同的頁面)
參數(shù)可以由js產(chǎn)生并傳遞url,php后臺(tái)頁面根據(jù)URL抓頁面。然后ajax通過php,在數(shù)據(jù)庫或者是哪里設(shè)一個(gè)標(biāo)量,標(biāo)明檢測(cè)到哪里。由于前臺(tái)的html頁面執(zhí)行多少時(shí)候都沒問題,這樣php的內(nèi)存限制和執(zhí)行時(shí)間限制就解決了。
因?yàn)椴粫?huì)浪費(fèi)大量的資源用一個(gè)頁面來跑一個(gè)瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過了php限制的內(nèi)存)
不過印象中curl好像也有強(qiáng)制同步的選項(xiàng),就是等待一個(gè)抓取后再執(zhí)行下一步。但是這個(gè)500次都是用一個(gè)頁面線程處理,也就是說肯定會(huì)遠(yuǎn)遠(yuǎn)大于30秒的默認(rèn)執(zhí)行時(shí)間。
用fopen/file/file_get_contents/curl之類的函數(shù)將遠(yuǎn)程頁面獲得內(nèi)容, 采用正則或過濾之類的獲得自己所需要的東西, 最好寫入相應(yīng)的數(shù)據(jù)庫保存起來。
首先,隊(duì)列的作用不是批量處理,而是延時(shí)處理,也叫異步處理
要做批量采集的話,首先你要?jiǎng)澐趾脜^(qū)間,可以用php的多進(jìn)程,也可以用php的cli模式做,只要數(shù)據(jù)不竄就行
問題其實(shí)不難,自己都能寫。給你幾個(gè)思路吧:
1.在百度知道中,輸入linux,然后會(huì)出現(xiàn)列表。復(fù)制瀏覽器地址欄內(nèi)容。
然后翻頁,在復(fù)制地址欄內(nèi)容,看看有什么不同,不同之處,就是你要循環(huán)分頁的i值。
當(dāng)然這個(gè)是笨方法。
2.使用php的file或者file_get_contents函數(shù),獲取鏈接URL的內(nèi)容。
3.通過php正則表達(dá)式,獲取你需要的3個(gè)字段內(nèi)容。
4.寫入數(shù)據(jù)庫。
需要注意的是,百度知道有可能做了防抓取的功能,你剛一抓幾個(gè)頁面,可能會(huì)被禁止。
建議也就抓10頁數(shù)據(jù)。
其實(shí)不難,你肯定寫的出來。 還有,網(wǎng)上應(yīng)該有很多抓取工具,你找找看,然后將抓下來的數(shù)據(jù)
在做分析。寫入數(shù)據(jù)庫。