Ruby:無法抓取百度搜尋結果
PHP中文网
PHP中文网 2017-04-22 08:55:58
0
3
646

URL:http://www.baidu.com/s?wd=site:www.cnblogs.com
代碼:

def get_html(url)
    uri = URI(url)
    p resp = Net::HTTP.get(uri)
end

而獲取到的結果是百度首頁的源碼,並不是搜索site:www.cnblogs.com的結果


不知道,Ruby中有關於網絡編程方麵的好書籍沒?
剛接觸ruby,很多東西不知道從何找(目前都是到官網看文檔)。


使用PHP簡單實現了下:

<?php
set_time_limit(0);
function _rand()
{
    $length = 26;
    $chars = "0123456789abcdefghijklmnopqrstuvwxyz";
    $max = strlen($chars) - 1;
    mt_srand((double)microtime() * 1000000);
    $string = '';
    for ($i = 0; $i < $length; $i++) {
        $string.= $chars[mt_rand(0, $max) ];
    }
    return $string;
}
$HTTP_SESSION = _rand();
$HTTP_SESSION;
$HTTP_Server = "www.baidu.com";
$HTTP_URL = "/s?wd=site:www.cnblogs.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://" . $HTTP_Server . $HTTP_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
$res = curl_exec($ch);
curl_close($ch);
print_r($res);
PHP中文网
PHP中文网

认证0级讲师

全部回覆(3)
小葫芦

不管你使用什麼語言的程式碼來抓取,你都不可能這麼簡單就抓到百度的內容了。
百度不是以前那個百度了,沒各種cookie認證,屁都抓不到,你最好研究一下看看有沒有api吧,百度前端的代碼各種繞,目的就是不讓你抓到。

迷茫

http://www.baidu.com/s?wd=www.cnblogs.com&rsv_bp=0&ch=&tn=19045005_5_pg&bar=&rsv_spt=3&ie=utf-8&rsv_n=2&rsv_sug3=1&finug 樓主,這樣麼一大堆丟出去才有回吧?

Ty80

樓主 ,你是要 抓取 baidu採集的 興趣點poi嗎?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板