|
|
|
| Делаю парсер яндекс маркета.
Необходимо сделать получение страницы например этой
http://market.yandex.ru/guru.xml?CMD=-RR=5,0,0,0-VIS=160-CAT_ID=117929-EXC=1-PG=10&hid=90581
Через curl+proxy (видимо по другому никак)
т.к file_get_contents один раз прошелся и теперь блокируют.
Заранее благодарен тому, кто выложит функцию. | |
|
|
|
|
|
|
|
для: goacher
(06.07.2010 в 15:43)
| | Мульти курлом в 10 потоков (Бана не ззааммееччеенн):
<?php
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.14) Gecko/2009082707 Firefox/3.0.14";
$ch = curl_init("http://market.yandex.ru/guru.xml?CMD=-RR=5,0,0,0-VIS=160-CAT_ID=117929-EXC=1-PG=10&hid=90581");
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec ($ch);
$mass[] .=$output;
curl_close($ch);
preg_match_all ('|Set-Cookie: ([^;]*);|isU',$output,$content_com);
$cook="Set-Cookie: ".$content_com[1][0]."; ".$content_com[1][1].";";
$ch1 = curl_init();
$ch2 = curl_init();
$ch3 = curl_init();
$ch4 = curl_init();
$ch5 = curl_init();
$ch6 = curl_init();
$ch7 = curl_init();
$ch8 = curl_init();
$ch9 = curl_init();
$ch10 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=10-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch2, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=20-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch3, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=30-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch4, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=40-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch5, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=50-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch6, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=60-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch7, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=70-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch8, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=80-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch9, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=90-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch10, CURLOPT_URL, "http://market.yandex.ru/guru.xml?hid=90581&CMD=-RR=5,0,0,0-VIS=201E2-CAT_ID=117929-BPOS=100-EXC=1-PG=10&greed_mode=false");
curl_setopt($ch1, CURLOPT_USERAGENT, $ua);
curl_setopt($ch2, CURLOPT_USERAGENT, $ua);
curl_setopt($ch3, CURLOPT_USERAGENT, $ua);
curl_setopt($ch4, CURLOPT_USERAGENT, $ua);
curl_setopt($ch5, CURLOPT_USERAGENT, $ua);
curl_setopt($ch6, CURLOPT_USERAGENT, $ua);
curl_setopt($ch7, CURLOPT_USERAGENT, $ua);
curl_setopt($ch8, CURLOPT_USERAGENT, $ua);
curl_setopt($ch9, CURLOPT_USERAGENT, $ua);
curl_setopt($ch10, CURLOPT_USERAGENT, $ua);
curl_setopt ($ch1, CURLOPT_COOKIE, $cook);
curl_setopt ($ch2, CURLOPT_COOKIE, $cook);
curl_setopt ($ch3, CURLOPT_COOKIE, $cook);
curl_setopt ($ch4, CURLOPT_COOKIE, $cook);
curl_setopt ($ch5, CURLOPT_COOKIE, $cook);
curl_setopt ($ch6, CURLOPT_COOKIE, $cook);
curl_setopt ($ch7, CURLOPT_COOKIE, $cook);
curl_setopt ($ch8, CURLOPT_COOKIE, $cook);
curl_setopt ($ch9, CURLOPT_COOKIE, $cook);
curl_setopt ($ch10, CURLOPT_COOKIE, $cook);
curl_setopt ($ch1, CURLOPT_HEADER, 1);
curl_setopt ($ch2, CURLOPT_HEADER, 1);
curl_setopt ($ch3, CURLOPT_HEADER, 1);
curl_setopt ($ch4, CURLOPT_HEADER, 1);
curl_setopt ($ch5, CURLOPT_HEADER, 1);
curl_setopt ($ch6, CURLOPT_HEADER, 1);
curl_setopt ($ch7, CURLOPT_HEADER, 1);
curl_setopt ($ch8, CURLOPT_HEADER, 1);
curl_setopt ($ch9, CURLOPT_HEADER, 1);
curl_setopt ($ch10, CURLOPT_HEADER, 1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch4, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch5, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch6, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch7, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch8, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch9, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch10, CURLOPT_RETURNTRANSFER, 1);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
curl_multi_add_handle($mh,$ch3);
curl_multi_add_handle($mh,$ch4);
curl_multi_add_handle($mh,$ch5);
curl_multi_add_handle($mh,$ch6);
curl_multi_add_handle($mh,$ch7);
curl_multi_add_handle($mh,$ch8);
curl_multi_add_handle($mh,$ch9);
curl_multi_add_handle($mh,$ch10);
$running=null;
do
{
curl_multi_exec($mh,$running);
} while ($running > 0);
$mass[] .= curl_multi_getcontent($ch1);
$mass[] .= curl_multi_getcontent($ch2);
$mass[] .= curl_multi_getcontent($ch3);
$mass[] .= curl_multi_getcontent($ch4);
$mass[] .= curl_multi_getcontent($ch5);
$mass[] .= curl_multi_getcontent($ch6);
$mass[] .= curl_multi_getcontent($ch7);
$mass[] .= curl_multi_getcontent($ch8);
$mass[] .= curl_multi_getcontent($ch9);
$mass[] .= curl_multi_getcontent($ch10);
print_r('<pre>');
print_r($mass);
?>
|
| |
|
|
|
|
|
|
|
для: VITtek
(06.07.2010 в 21:25)
| | сделал так:
$ssilka="http://market.yandex.ru";
$ch = curl_init($ssilka);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec ($ch);
curl_close($ch);
preg_match_all ('|Set-Cookie: ([^;]*);|isU',$output,$content_com);
$cook="Set-Cookie: ".$content_com[1][0]."; ".$content_com[1][1].";";
print_r($output);
сначала грабило нормально, а потом на запрос по ссылке выдает страницу
Доступ к нашему сервису запрещен!
Вполне возможно, что ваш компьютер заражен вирусом или spyware (вредоносной программой), которая автоматически обращается к Яндексу.
Рекомендуем вам проверить компьютер на вирусы или обратиться к администратору вашего компьютера или вашей сети.
О других возможных причинах и способах их устранения вы можете узнать здесь. | |
|
|
|
|
|
|
|
для: goacher
(07.07.2010 в 15:06)
| | видимо по ip банит... | |
|
|
|
|
|
|
|
для: goacher
(07.07.2010 в 15:58)
| | Ну значит: Либо ставить паузу между запросами, либо прокси.
Даже не знаю какой из способов хуже )))
Как делать с прокси я тебе где то уже писал | |
|
|
|
|
|
|
|
для: VITtek
(07.07.2010 в 17:32)
| | паузы позно уже делать, забанили)) | |
|
|
|
|