裝潢、搬家、清潔、打蠟、粉刷、招牌、抓漏、冷氣
線上精準估價,比價最容易,給你最便宜的價格,消費不
抓漏專業中古屋改造工程,新成屋,預售屋室內裝潢設計
搭配家具,家飾布置,整體規劃

首頁  •  j2h 論壇 • 程式設計討論     • 

[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的方式來進行測試



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

    姓名:
    佈告內容:
    其他選項: