Ruby:无法抓取百度搜索结果
PHP中文网
PHP中文网 2017-04-22 08:55:58
0
3
639

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级讲师

répondre à tous(3)
小葫芦

Quel que soit le code de langue que vous utilisez pour explorer, vous ne pouvez pas capturer le contenu Baidu aussi facilement.
Baidu n'est plus le même Baidu qu'avant. Sans diverses authentifications de cookies, vous ne pouvez même pas l'attraper. Vous feriez mieux de faire des recherches pour voir s'il existe une API. Le code frontal de Baidu est plein de rebondissements. , juste pour éviter de vous faire prendre.

迷茫

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&rsv_sug4=57&rsv_sug2=0&inputT=635
Maître de poste, vous ne pouvez récupérer qu'en jetant une telle somme, n'est-ce pas ?

Ty80

Propriétaire, souhaitez-vous récupérer les POI collectés par Baidu ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal