Ситуация такая: мне нужно курлом получить страницу и дальше вырезать некую таблицу (пусть будет так). Но проблема усложняется тем, что страница которую я хочу спарсить пустит меня только 3 раза, дальше забанит по IP. Как мне можно генерировать левый IP перед каждым заходом на страницу ?
Спустя 1 минута, 57 секунд (29.06.2011 - 21:56) kovaldm написал(а):
Через анонимайзеры.
Спустя 1 минута, 51 секунда (29.06.2011 - 21:58) Winston написал(а):
А за один раз нельзя получить страницу, через file_get_contents ?
Цитата (RCuPeR @ 29.06.2011 - 21:54) |
пустит меня только 3 раза |
Какой интервал во времени должен быть чтобы, не забанили ?
Спустя 1 минута, 16 секунд (29.06.2011 - 21:59) alex12060 написал(а):
Считал, вырезал, сохранил, зашел завтра.
Идеальный вариант)
Кто-то спать хотел, не?
Идеальный вариант)
Кто-то спать хотел, не?
Спустя 2 часа, 1 минута, 15 секунд (30.06.2011 - 00:00) walerus написал(а):
kovaldm
Если использовать IP
Это если использовать Proxy
Из куска который получает следующий IP, можно сделать функцию и ее дергать в цикле обработки твоего скрипта... По аналогу сделай и с проксями...
Если использовать IP
$ips = array('255.255.255.254', '255.255.255.253'); // Массив с IP адресами
$index = (file_exists('last_used_ip.txt'))? array_search(file_get_contents('last_used_ip.txt'), $ips) : 0;
$index++;
if ($index>=count($ips))
$index = 0;
$ip = $ips[$index];
file_put_contents('last_used_ip.txt', $ip);
curl_setopt($curl, CURLOPT_INTERFACE, $ip);
Это если использовать Proxy
curl_setopt($curl, CURLOPT_PROXY, '66.173.241.16');
curl_setopt($curl, CURLOPT_PROXYPORT, '80');
Из куска который получает следующий IP, можно сделать функцию и ее дергать в цикле обработки твоего скрипта... По аналогу сделай и с проксями...
Спустя 17 часов, 55 минут, 32 секунды (30.06.2011 - 17:56) RCuPeR написал(а):
Всем привет. Извиняюсь, что ушел по-английски... Уснул =(
Немного отклонюсь от темы:
Правильная регулярка ?
Немного отклонюсь от темы:
"/<div id=\"main\">(.*)<\/div>/isU"
Правильная регулярка ?
Спустя 14 минут, 49 секунд (30.06.2011 - 18:11) Winston написал(а):
Смотря что именно тебе надо.
А так правильно, только U можно в нижнем регистре написать.
UPD
Хотя можно так написать
Кто знает какие кавычки могут попасться
А так правильно, только U можно в нижнем регистре написать.
UPD
Хотя можно так написать
"/<div id=(\"|')main\\1>(.*)<\/div>/isU"
Кто знает какие кавычки могут попасться
Спустя 5 минут, 52 секунды (30.06.2011 - 18:17) RCuPeR написал(а):
Мне нужно получить содержимое дива id="main".
Спустя 18 секунд (30.06.2011 - 18:17) inpost написал(а):
PHPprogramer
u - работа с UTF-8 кодировкой!
U - убираем жадность поиска.
RCuPeR
В данном случае мне кажется, что стоит добавить ещё u для ЮТФ.
u - работа с UTF-8 кодировкой!
U - убираем жадность поиска.
RCuPeR
В данном случае мне кажется, что стоит добавить ещё u для ЮТФ.
Спустя 52 секунды (30.06.2011 - 18:18) Winston написал(а):
Цитата (RCuPeR @ 30.06.2011 - 18:17) |
Мне нужно получить содержимое дива id="main" |
Проще js
Спустя 2 минуты, 3 секунды (30.06.2011 - 18:20) Winston написал(а):
Оно ?
$str = "<div id='main'>бла бла бла</div>";
preg_match("/<div id=(\"|')main\\1>(.*)<\/div>/isuU", $str, $mt);
echo $mt[2];
Спустя 5 минут, 20 секунд (30.06.2011 - 18:25) RCuPeR написал(а):
Оно-то оно! Но вот только ничего не получается.
Такой ещё вопрос: можно спарсить страницу которая находится по протоколу https ?
Такой ещё вопрос: можно спарсить страницу которая находится по протоколу https ?
Спустя 5 минут, 51 секунда (30.06.2011 - 18:31) Winston написал(а):
Цитата (RCuPeR @ 30.06.2011 - 18:25) |
можно спарсить страницу которая находится по протоколу https ? |
Неа !
Спустя 55 секунд (30.06.2011 - 18:32) RCuPeR написал(а):
Очень интересно...
И никакого обхода нету ?
И никакого обхода нету ?
Спустя 8 минут, 26 секунд (30.06.2011 - 18:40) Winston написал(а):
Ничего невозможного нет.
Действуй
Действуй
Спустя 13 минут, 27 секунд (30.06.2011 - 18:54) RCuPeR написал(а):
Странно, и в прошлый раз парсил курлом...
Слушай, получается, что CURLOPT_REFERER дает понять серверу откуда я пришел ?!
Т.е, если у меня там будет адрес гугла - он определит ип гугла ?
Слушай, получается, что CURLOPT_REFERER дает понять серверу откуда я пришел ?!
Т.е, если у меня там будет адрес гугла - он определит ип гугла ?
Спустя 3 минуты, 18 секунд (30.06.2011 - 18:57) Winston написал(а):
Я даже не знаю.
Но судя по описанию этой константы, да.
Но судя по описанию этой константы, да.
Спустя 4 минуты, 33 секунды (30.06.2011 - 19:02) RCuPeR написал(а):
Блин, как-то оно парсит неправильно....
Слушай, а с тобой можно списаться где-то в другом месте ? Например, скайп ?
Слушай, а с тобой можно списаться где-то в другом месте ? Например, скайп ?
Спустя 5 минут, 30 секунд (30.06.2011 - 19:07) Winston написал(а):
ICQ сойдет ?
Отправил в личку.
Отправил в личку.
Спустя 10 минут (30.06.2011 - 19:17) RCuPeR написал(а):
Уже не помню как аськами пользоваться. У становил Pidgin, будем пробовать.
Отправил запрос.
Отправил запрос.
Спустя 22 минуты, 46 секунд (30.06.2011 - 19:40) inpost написал(а):
PHPprogramer
Скинь и мне аську, поболтаем
Скинь и мне аську, поболтаем
Спустя 18 минут, 23 секунды (30.06.2011 - 19:58) RCuPeR написал(а):
Вот ты жук, Инпост
Спустя 3 минуты, 42 секунды (30.06.2011 - 20:02) Winston написал(а):
Вот работает
Свернутый текст
$search = preg_quote('<form id="smsFreeForm" style="margin: 0px; padding: 0px;" action="smsFree.html" method="post" onsubmit="return onFormSubmit(this)">');
$replace = '<form id="smsFreeForm" style="margin: 0px; padding: 0px;" action="smsFree.html)))" method="post" onsubmit="return onFormSubmit(this)">';
$text = preg_replace('#' . $search . '#isu', $replace, $text);
print_r(htmlspecialchars(preg_replace('#' . $search . '#isu', $replace, $text)));
_____________
Гнусный социопат с комплексом Бога.