Парсить бинг по 50 результатов

Тема в разделе "PHP", создана пользователем phillip, 28 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Хочу распарсить bing.com, но надо чтобы обязательно было на странице по 50 результатов.
    Вот допустим страница http://www.bing.com/search?q=nulled&go=&form=QBRE&filt=all
    Если мы человек, то мы нажимаем в правом верхнем углу Настройки, и выбираем- показывать 50 результатов на странице. А как поставить по 50 страниц если мы- скрипт?? Попробовал перехватывать заголовки и post данные. Ничего. А желательно как-то с помощью курла сделать это (приказать отображать по 50 результатов).
    Помогите!!! :bc::bc:
     
  2. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    В SRCHHPGUSR куке есть NRSLT=50
     
    phillip нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Спасибо. тогда мне надо для начала сохранить куки, полученные от бинга. Пробую так, что-то не получается :nezn:

    PHP:
    $agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7'
      
    $header[] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" 
      
    $header[] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1"
      
    $header[] = "Accept_encoding: identity"
      
    $header[] = "Accept_language: en-us,en;q=0.5"
      
    $header[] = "Connection: close"
      
    $header[] = "Cache-Control: no-store, no-cache, must-revalidate"
      
    $header[] = "Keep_alive: 300"
      
    $header[] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT"
      
        
    $url='http://www.bing.com/search?q=nulled&go=&form=QBRE&filt=all';
      
    $ch curl_init();  
      
    curl_setopt($chCURLOPT_URL,$url);  
      
    curl_setopt($chCURLOPT_HEADER1); 
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
      
    curl_setopt($chCURLOPT_TIMEOUT30); 
      
    curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);  
      
    curl_setopt($chCURLOPT_POST1); 
      
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $query_str); 
      
    curl_setopt $ch CURLOPT_USERAGENT $agent); 
      
    curl_setopt $ch CURLOPT_HTTPHEADER $header); 

      
    curl_setopt($chCURLOPT_COOKIEJAR$_SERVER['DOCUMENT_ROOT'].'/cookies.txt');
        
    curl_setopt($chCURLOPT_COOKIEFILE$_SERVER['DOCUMENT_ROOT'].'/cookies.txt'); 
      
    $result curl_exec($ch); 
      
    print_r(file($_SERVER['DOCUMENT_ROOT'].'/cookies.txt'));
      
    curl_close($ch);  
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    можно зарегистрироваться в bing api

    http://www.bing.com/developers/default.aspx

    и скачивать результат поиска в форматах xml, json

    http://msdn.microsoft.com/en-us/library/dd251062.aspx

    результат будет по ссылке

    http://api.bing.net/xml.aspx?AppId=(вставить.appid.код)&Version=2.2&Market=ru-RU&Query=test&Sources=web+spell&Web.Count=50&Web.Offset=0

    Web.Count - количество результатов, максимум 50
    Web.Offset - показывать начиная с
     
    lenya и phillip нравится это.
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    спасибо, но... подходит не очень( по запросу porn таким образом ничего не отдает
     
  6. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    &Adult=off
    отключит фильтр

    &Options=EnableHighlighting
    отмечает слова

    &Market=en-us
    область поиска
     
    phillip нравится это.
  7. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    что бы новую тему не создавать - спрошу здесь

    при парсинге бинга по 50 страниц
    выставил 15 сек - этот гад, судя по всему, забанил ип - больше 4 страниц не отдает

    хотя до этого, когда руками проверял - точно до 7 доходил

    кто знает, какую задержку ему нужно ставить?
    и через сколько бан с ип снимается?
     
  8. krenkus

    krenkus Создатель

    Регистр.:
    10 мар 2008
    Сообщения:
    37
    Симпатии:
    4
    Пользуй лучше базу проксей, как ни крути, рано или поздно ИП забанят :(
     
  9. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    если грамотно всё делать - не забанят :)

    закономерность выявлена

    отдает все разультаты, в случае, если висишь на нем с этого ИП больше часа
    однозначно прописывается это где-то в куках, не копал еще, на предмет подмены, но куча проксей тут не прокатит точно
     
  10. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Все же АПИ мне не совсем подходит. хочу курлом распарсить. Но что-то беда, бинг говорит что запрос мой неверен. Ту же линку открываю в браузере- все норм!
    Вот примерно так делаю:
    PHP:
    $agent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7'
      
    $header[] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" 
      
    $header[] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1"
      
    $header[] = "Accept_encoding: identity"
      
    $header[] = "Accept_language: en-us,en;q=0.5"
      
    $header[] = "Connection: close"
      
    $header[] = "Cache-Control: no-store, no-cache, must-revalidate"
      
    $header[] = "Keep_alive: 300"
      
    $header[] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT"
      
      
    $url='http://www.bing.com/search?q=films&go=&form=QBRE&filt=lf';
      
    $ch curl_init();  
      
    curl_setopt($chCURLOPT_URL,$url);  
      
    curl_setopt($chCURLOPT_HEADER1); 
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
      
    curl_setopt($chCURLOPT_TIMEOUT30); 
      
    curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);  
      
    curl_setopt($chCURLOPT_POST1); 
      
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $query_str); 
      
    curl_setopt $ch CURLOPT_USERAGENT $agent); 
      
    curl_setopt $ch CURLOPT_HTTPHEADER $header); 
      
    //curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookies.txt');
      //curl_setopt($ch, CURLOPT_COOKIEFILE,  $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'); 
      
    $result curl_exec($ch); 
      
    //print_r(file($_SERVER['DOCUMENT_ROOT'].'/cookies.txt'));
      
    curl_close($ch);  

    echo 
    $result;
     
Статус темы:
Закрыта.