多年拆除工程經驗,專營裝潢拆除
隔間打牆等施工,歡迎洽詢
比價網創新廣告招牌設計,親民價格
頂級質感,連鎖企業合作推薦!
J2H流行雜誌J2h論壇程式設計討論   
交友配對個人設定加入會員會員說明重新登入


[php] 請問如何模擬瀏覽器搜尋網頁?

房東:張先生
發表時間:2016-07-22
[檢舉]



小弟最近在做關於網頁搜尋機械人(robot),有點類似google搜尋引擎那樣
搜尋演算法已經完成,並且確定成功 (有找其他網頁來測試)

但是對於某些網頁
例如:
http://news.yahoo.com (英文網頁)

都會被server偵測出來並且將我列為robot
(為什麼我知道,因為小弟檢視抓到的網頁的原始碼後發現,
和一般瀏覽器(IE)抓取到的原始碼不一樣,並且原始碼內有一行明白的寫著"SpaceID = 0 robot")


小弟利用多種連結方式測試之後,都失敗了
懇請各位大大幫忙,不知道有什麼比較好的方法可以避開或者欺騙Server的偵測



  • J2H贊助網站            在此刊登廣告

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!

  • 1 樓住戶:艾蕾蕾
    發表時間:2016-07-22
    [檢舉]

    目前我採取的方式是使用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的方式來進行測試



     共 1 人回應  選擇頁數 【第1 頁】 

    回應主題
    ※注意 
    1. 抱歉,您的網頁未支援Cookie,此網頁將無法正常執行請檢查您電腦瀏覽器關於cookie的設定。設定方法說明
    2. 必須由首頁登入 J2H 流行雜誌