Парсил сайт - забанили IP - купил ещё 1н - не работает

123 4
B
На сайте с 23.10.2006
Offline
170
#11
Talamat:
Разные парсеры бывают... ;)

Две недели, не так давно, угрохали на нормальный парсер... Чтоб оперативы не хавал и парсил с нормальной скоростью(около 3-4 тысяч страниц в минуту при расходе 1гиг оперативы сервака)
Пришлось на перле писать, т.к. пхп тут совсем не годится.

Чет памяти дофига жрется :) - у меня на курлах 1000 страниц в минуту (по 15-60кб) жрется всего 68 Мб :)

и нагрузка на ЦП не больше 5%

Talamat:

P.S. В предидущем сообщении парсер будет выводить страницу, а не сохранять в переменную $result Чтоб сохранял надо добавить CURLOPT_RETURNTRANSFER...
P.P.S. Хотя если этот пример назвать парсером, то почему бы тогда не $result = file_get_contents('http://ya.ru/'); 🚬

У каждого парсера - своя цель, а курл я для примера привел.

Хотя та функция меня полностью устраивает - я на локальном компе запускаю парсер статистики лайв интернета (по точкам входа на сайт), но там ограничение по запросам - вот часть запросов через другой сервак и тащу (груба говоря аля прокси на коленке :) - гетом передал в скрипт страничку, а он её вывел)

SJ
На сайте с 16.03.2008
Offline
78
#12
bimcom:
Ошибаетесь - взять хотябы меня - я далеко не профи в програмирование, даже проще сказать новичек.
PS.
Парсер страничек пишется даже мной за 1 минут максимум.
$url="сайтец";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_TIMEOUT, 20); // times out after 20s
$result = curl_exec($ch); // run the whole process
curl_close($ch);

Вот готовый парсер, а дальше делай с полученными данными все что хочешь используя строковые функции - разве необходимо гигантскую квалификацию?

Ну, если даже referer передавать не надо, UserAgent эмулировать, куки поддерживать то юзайте вобще file_get_contents.

Только то, что вы написали - это еще совсем не парсер :)

sokol_jack добавил 19.03.2009 в 11:42

bimcom:
Чет памяти дофига жрется :) - у меня на курлах 1000 страниц в минуту (по 15-60кб) жрется всего 68 Мб :)
и нагрузка на ЦП не больше 5%

Это наверное про curl_multi? Тогда поддерживаю, жрет совсем ничего.

Только вот из неприятного - запрос на 100 урлов будет выполнятся столько, сколько понадобится для самого медленного урла или таймаута.

Мне это надоело, я и на .net десктопную версию сделал. С пулом потоков, все честно. Сказать, что скорость увеличилась - ничего не сказать :)

Если не ленится и число потоков поставить довольно большим (5-10к), то весь канал забивается :)

Любимый хостинг (http://beget.ru?id=2902) How can we grow old when the soundtrack of our lives is rock-n-roll?
MZ
На сайте с 27.01.2007
Offline
88
#13
bimcom:
Ошибаетесь - взять хотябы меня - я далеко не профи в програмирование, даже проще сказать новичек.
PS.
Парсер страничек пишется даже мной за 1 минут максимум.
$url="сайтец";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_TIMEOUT, 20); // times out after 20s
$result = curl_exec($ch); // run the whole process
curl_close($ch);

Вот готовый парсер, а дальше делай с полученными данными все что хочешь используя строковые функции - разве необходимо гигантскую квалификацию?

вот "делай что хочешь" - и будет парсером, а приведённый пример - это всего лишь загрузчик :)

404 Not Found
B
На сайте с 23.10.2006
Offline
170
#14
mrZer0:
вот "делай что хочешь" - и будет парсером, а приведённый пример - это всего лишь загрузчик :)

Я просто угораю над народом - у каждого слово парсер - свое понимание, и особенно под свои потребности

- одни долбят в репу - вор контента получай

- вторые угорают что это за парсер это не парсер а..... - Да написал я это для примера sokol_jack, -что парсер писать это гением быть ненадо.

sokol_jack:
Ну, если даже referer передавать не надо, UserAgent эмулировать, куки поддерживать то юзайте вобще file_get_contents.

Низя, а если соединение зависнет? - не практично + тежех рефов не подставить и пост не передать.

sokol_jack:

Это наверное про curl_multi? Тогда поддерживаю, жрет совсем ничего.
Только вот из неприятного - запрос на 100 урлов будет выполнятся столько, сколько понадобится для самого медленного урла или таймаута.
Мне это надоело, я и на .net десктопную версию сделал. С пулом потоков, все честно. Сказать, что скорость увеличилась - ничего не сказать :)
Если не ленится и число потоков поставить довольно большим (5-10к), то весь канал забивается :)

Тоже такая фигня надоела - сделал связку связку=сокеты + CURL - сокетами контролирую количество потоков, а курлом выгребаю для моих 20-50 потоков вполне хватает. (ток контролировать нужно аккуратно а то проц на 100% задумывается)

PS.

Хороший у вас канал :) у меня 30 потоков мои 5 Мбит просаживают на 100%

[Удален]
#15
bimcom:
Чет памяти дофига жрется :) - у меня на курлах 1000 страниц в минуту (по 15-60кб) жрется всего 68 Мб :)
и нагрузка на ЦП не больше 5%

Чот я правда загнул... висит несколько процессов, каждый по 30-40 метров...

С мультикурлом(в пхп) была проблема: ему даешь на скачивание 100 урлов, он половину не мог выкачать. Нормально работал только если не более 30 за раз. Вроде бы с ДНС проблема была... сейчас уже не помню :(

B
На сайте с 23.10.2006
Offline
170
#16
Talamat:
Чот я правда загнул... висит несколько процессов, каждый по 30-40 метров...
С мультикурлом(в пхп) была проблема: ему даешь на скачивание 100 урлов, он половину не мог выкачать. Нормально работал только если не более 30 за раз. Вроде бы с ДНС проблема была... сейчас уже не помню :(

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

Sasha_l
На сайте с 22.08.2003
Offline
107
#17

можно парсить через прокси - тогда проблема с баном IP отпадает.

Оптимизирую и продвину ваши сайты "под ключ" (http://www.seodoktor.ru/) Skype: SeoDoktor
Andreyka
На сайте с 19.02.2005
Offline
822
#18

Возникает проблема где взять прокси

Не стоит плодить сущности без необходимости
B
На сайте с 23.10.2006
Offline
170
#19
Andreyka:
Возникает проблема где взять прокси

Вот поэтому проще купить пачку IPов по $0.8 и не дергаться с поиском (точнее с пакупкой списков) тормазных и отваливающихся проксиков, они нужны только для конфиденциальности (во время хака/спама, да и возможно что те прокси будут уже везде в бане).

Inoteol
На сайте с 19.03.2009
Offline
60
#20

bimcom, проще всего взять ещё один дешёвый хостинг на другой домен. Там создать скрипт (к примеру get.php) со следующем содержанием:

echo implode("",file($_GET['url']));

После заменить в парсере "адрес_откуда_парсим" на "адрес_другого_хостинга/get.php?url=адрес_откуда_парсим".

Даже если сайт пока небанили, разумнее парсить с другого IP.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий