Мне нужно написать веб-сканер для конкретного пользовательского агента - PullRequest
2 голосов
/ 14 мая 2011

Мне нужно написать веб-сканер, и я хочу иметь возможность сканировать с помощью известного пользовательского агента.Например, я хочу, чтобы мой сканер выполнял роль iphone для сканирования мобильного сайта веб-сайта, затем снова сканировал с помощью агента Mozilla для ПК и т. Д.

Таким образом, я смогу сканировать каждый «тип»сайт (мобильный и ПК).Однако я также хочу иметь возможность настроить пользовательский агент моего сканера, поэтому веб-мастера также видят в своей статистике, что этот сканер посетил весь их сайт, а не настоящие пользователи.

Так что мой вопрос, вы, ребята,знаете, как настроить мобильный агент + агент сканирования одновременно в PHP?Это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Пожалуйста, обратитесь к RFC1945 о том, как User Agent должен быть сформирован:

10.15 User-Agent

Поле заголовка запроса User-Agent содержит информацию о пользовательский агент, инициирующий запрос. Это для статистических целей, отслеживание нарушений протокола и автоматическое распознавание пользователя агенты для настройки ответов, чтобы избежать конкретного пользователя агентские ограничения. Хотя это не обязательно, пользовательские агенты должны включите это поле с запросами. Поле может содержать несколько токены продукта (Раздел 3.7) и комментарии, идентифицирующие агента и любые субпродукты, которые составляют значительную часть пользовательского агента. От условно, токены продукта перечислены в порядке их значение для идентификации приложения.

 User-Agent     = "User-Agent" ":" 1*( product | comment )

Пример:

  User-Agent: CERN-LineMode/2.15 libwww/2.17b3

Итак, то, что вы положили, более или менее зависит от вас. Вы можете представить себя как GoogleBot-Mobile:

или выдавайте себя за iPhone и добавляйте свои собственные вещи

Mozilla/5.0 (iPhone; U; CPU iPhone OS) (compatible; MyBot/1.0; +http://about.my/bot")
0 голосов
/ 14 мая 2011
    function crawl($url){

        $headers[]  = "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"; // <-- this is user agent
        $headers[]  = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        $headers[]  = "Accept-Language:en-us,en;q=0.5";
        $headers[]  = "Accept-Encoding:gzip,deflate";
        $headers[]  = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7";
        $headers[]  = "Keep-Alive:115";
        $headers[]  = "Connection:keep-alive";
        $headers[]  = "Cache-Control:max-age=0";

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_ENCODING, "gzip");
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($curl);
        curl_close($curl);
        return $data;

    }

echo crawl("http://www.google.com"); // revenge

Вы всегда можете использовать, например, http://m.facebook.com/ без пользовательского агента, хотя большинство веб-сайтов перенаправляют пользователя на нужный контент, читая пользовательский агент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...