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

Статус
В этой теме нельзя размещать новые ответы.
phillip, а зачем оставил curl_setopt($ch, CURLOPT_POST, 1)?
 
спасибо, спасло) не пойму такой момент.... надо куки подменить, чтобы выдал 50 результатов вместо 10ти. Если включаю в лисе перехватку данных, то вижу что лиса отсылает такую куку:
PHP:
SC=AE=&AT=; _CP=V=000000; MUID=1B5F3505ADBA42569C2A3E5B751071DF; SRCHD=MS=1145614&D=1109337&AF=NOFORM; SRCHUID=V=2&GUID=E132255F45F24E37AD11C04C0E0724D6; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20100209; _MD=alg=m2&C=2010-03-06T13%3a34%3a23; SRCHHPGUSR=NEWWND=0&ADLT=DEMOTE&NRSLT=50&NRSPH=2&LOC=LAT%3d55.17|LON%3d61.40|DISP%3dChelyabinsk%2c%20Chelyabinskaya%20Oblast'|&SRCHLANG=; _HOP=; RMS=T=264736&SERP=768; _SS=hIm=438&bIm=843; OVR=flt=0&flt2=0&DomainVertical=0&Cashback=cbtest4&MSCorp=kievfinal&GeoPerf=0&Release=osf1
А если в курле ставлю сохранять куку в файл, и потом тот файл открываю, то вижу там следующее:
PHP:
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

.bing.com	TRUE	/	FALSE	1268828815	_MD	alg=m2&C=2010-03-07T12%3a26%3a55
.bing.com	TRUE	/	FALSE	0	_SS	SID=E929DEDD6EB44B2F89B3B8C173417F9B
.bing.com	TRUE	/	FALSE	1331036815	_UR	OMF=1
.bing.com	TRUE	/	FALSE	1331036815	MUID	01E81857D60D4F1A9377A92AE3D0E984
.bing.com	TRUE	/	FALSE	1331036815	OrigMUID	01E81857D60D4F1A9377A92AE3D0E984%2c137663d833c5486295001b52724042f0
.bing.com	TRUE	/	FALSE	0	OVR	flt=0&flt2=0&DomainVertical=0&Cashback=cbtest4&MSCorp=kievfinal&GeoPerf=0&Release=osf1
.bing.com	TRUE	/	FALSE	1331036815	SRCHD	D=1146986&MS=1146986&AF=QBRE
www.bing.com	FALSE	/	FALSE	1331036815	SRCHUID	V=2&GUID=5190D195EC3D458AA3ADD095DF5EFCE7
.bing.com	TRUE	/	FALSE	1331036815	SRCHUSR	AUTOREDIR=0&GEOVAR=&DOB=20100307
Как мне в курле сказать чтобы в куке было NRSLT=50 )))
Как я себе представлял, последовательность такая:
1.заходим первый раз курлом, сохраняем куку в файл
2.редактируем куку, подставляя туда NRSLT=50.
3.заходим снова по тому же адресу, уже с модифицированной кукой.

Но не пойму, куда там подставить то. и почему куки в лисе и куки от курла так отличаются
 
philip, добавь к хедерам
PHP:
$header[] = "Cookie: SRCHHPGUSR=NEWWND=0&ADLT=DEMOTE&NRSLT=50;";
 
спасибо :)

счас пытаюсь кодировку сделать нормальной, а то выдача бинга дается иероглифами. Что-то застрял. всегда делал вот так, но счас что-то не вкатывает. Прям с бингом одни беды что-то

Так. в переменную $result мы поместили отданное бингом. далее пишу

PHP:
$charsets = array('k'=>'KOI8-R','w'=>'windows-1251','d'=>'CP866','i'=>'ISO-8859-5','m'=>'MAC');
	$result = iconv($charsets[detect_cyr_charset($result)],'UTF-8',$result);

function detect_cyr_charset($str) {
    $charsets = Array(
                      'k' => 0,
                      'w' => 0,
                      'd' => 0,
                      'i' => 0,
                      'm' => 0
                      );
    for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
        $char = ord($str[$i]);
        //non-russian characters
        if ($char < 128 || $char > 256) continue;
        
        //CP866
        if (($char > 159 && $char < 176) || ($char > 223 && $char < 242)) 
            $charsets['d']+=LOWERCASE;
        if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
        
        //KOI8-R
        if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
        if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
        
        //WIN-1251
        if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
        if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
        
        //MAC
        if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
        if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
        
        //ISO-8859-5
        if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
        if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
        
    }
    arsort($charsets);
    return key($charsets);
}
И не выходит! потом пробую вручную определить кодировку, то есть перебираю варианты:
PHP:
$result=iconv('KOI8-R','UTF-8',$result);
$result=iconv('windows-1251','UTF-8',$result);
$result=iconv('ISO-8859-5','UTF-8',$result);
$result=iconv('CP866','UTF-8',$result);

и тоже ничего не дает.
:bc:
 
Странно, что у тебя иероглифы. У меня без всяких перекодировок отображается все ок. Бинг возвращает в UTF-8
Content-Type: text/html; charset=utf-8
В браузере нет каких-то заумных настроек? Можешь попробовать сохранить результат в файл и посмотреть что получится.
 
в папке лежит .htaccess в котором написано AddDefaultCharset UTF-8.
в любом браузере вместо русских букв иероглифы. записываю в файл, открываю его- тоже иероглифы. куда копать? :nezn:
 
с иероглифами разобрался:ay:
теперь не могу понять как заставить показывать выдачу только на русском языке. Есть в куках в лисе тоже пометка
&SRCHLANG=ru

пробую делать по аналогии, как Alix подсказал, то есть
PHP:
$header[] = "Cookie: SRCHHPGUSR=NEWWND=0&ADLT=DEMOTE&NRSLT=50&SRCHLANG=ru";
не работает. на любом языке показывает.
 
А если изменить фильтр?
PHP:
http://www.bing.com/search?q=film&go=&form=QBRE&filt=custom
PS: &SRCHLANG=ru, ессно, оставляем. и поставь ";" в конце :)
 
о, круто) теперь только русский, и кодировка В ОСНОВНОМ хорошая) почему-то попадается что 1 из 10 позиций выдачи в среднем идет какими-то хз чем
ïîäðîñòêè òðàõàþò çðåëûõ æåíùèíïîðíî ìãóïï ïîðíî àçèàòêè ìîëîäûå ÔÎÒÊÈ ÊÈÑÀÊ ïàìåëà àíäåðñîí ïîñëåäíåå ôîòî ìàìà ñ ñûíîì ôîòêè
Подскажите как можно бороться))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху