窗簾、壁紙、壁貼專業製作 款式獨特,網友一致好評 | 通馬桶、通水管、抽水肥、抽化糞池 價錢公道,24H快速服務 |
[php] 請問如何模擬瀏覽器搜尋網頁? |
房東:張先生 發表時間:2016-07-21 | [檢舉] |
小弟最近在做關於網頁搜尋機械人(robot),有點類似google搜尋引擎那樣 搜尋演算法已經完成,並且確定成功\ (有找其他網頁來測試) 但是對於某些網頁 例如: http://news.yahoo.com (英文網頁) 都會被server偵測出來並且將我列為robot (為什麼我知道,因為小弟檢視抓到的網頁的原始碼後發現, 和一般瀏覽器(IE)抓取到的原始碼不一樣,並且原始碼內有一行明白的寫著\"SpaceID = 0 robot\") 小弟利用多種連結方式測試之後,都失敗了 懇請各位大大幫忙,不知道有什麼比較好的方法可以避開或者欺騙Server的偵測 |
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |
1 樓住戶:艾蕾蕾 發表時間:2016-07-21 | [檢舉] |
目前我採取的方式是使用PHP上面一個CURL模組 此模組能夠有效的模擬瀏覽器,並且產生一個cookie檔 以下是部分程式範例; function doRequest($method, $url, $vars) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); if ($method == 'POST') { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); } $data = curl_exec($ch); curl_close($ch); return $data; } 雖然說成功克服cookie阻擋的問題,不過最後還是被網站用紀錄瀏覽器瀏覽次數的方式擋下來。 所以現在正在往調整網頁擷取時間或者是修改IP的方式來進行 目前嘗試用hinet的浮動IP重開跟新IP的方式來進行測試 |