PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 2 3 [4] 5 »

> Найдено сообщений: 63
Delovoy Отправлено: 27 Января, 2011 - 10:56:49 • Тема: Помогите распарсить текст • Форум: Регулярные выражения

Ответов: 15
Просмотров: 951
Uchkuma пишет:
Кстати, в зависимости от содержимого, данный шаблон не даст 100% верный результат. С точки зрения логики, вам необходимо выбирать вхождения, начинающиеся после цифры с точкой до первой открывающейся угловой скобки.

Да, все верно! Сейчас как раз "сражаюсь" с конструкцией такого регулярного выражения

JustUserR пишет:
Более подробная информация по данному вопросу предоставлена здесь http://www.php.su/functions/?page=cat_xml

Это тоже верно очень много полезной информации ..ОЧЕНЬ МНОГО Улыбка
Дайте конкретный совет чем пользоваться, а еще лучше конкретный пример реализации описанной мной задачи.
Лучше всего я обучаюсь на примерах, если Ваша цель на этот форуме, рально помочь. Спасибо Улыбка
Delovoy Отправлено: 27 Января, 2011 - 10:10:17 • Тема: Помогите распарсить текст • Форум: Регулярные выражения

Ответов: 15
Просмотров: 951
Спасибо movEAX, это немного не то, но думаю еще пригодится !

Спасибо, dima4321!
Работает ! Улыбка

Я правильно понял:
модификатор m - устанавливает обработку текста как многострочного
модификатор i - убирает регистрозависимость

^\s - выражение должно начинаться с пробела или символа перевода строки
^\s+ - выражение должно начинаться с пробела или символа перевода строки и символ должен быть один или более ?
[а-я.] класс символов, которые может содержать выражение
[а-я.]+класс символов, которые может содержать выражение и символ должен быть один или более ?
Delovoy Отправлено: 26 Января, 2011 - 19:36:48 • Тема: Помогите распарсить текст • Форум: Регулярные выражения

Ответов: 15
Просмотров: 951
Парсю следующий текст следующим методом:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         $text = '<p style="margin-bottom:6px; margin-top:2px; text-indent:0px;margin-left:10px">
  3.                <a href="/streets/588.htm" title="" style="text-indent:0px;margin:0px;pading:0px; font-size:12px; ">
  4.                1.
  5.                Александровская
  6.                </a>
  7.                <!-- ( Пригород
  8.                , )
  9.                -->
  10.                <br>
  11.                <p style="margin-bottom:6px; margin-top:2px; text-indent:0px;margin-left:10px">
  12.                <a href="/streets/577.htm" title="" style="text-indent:0px;margin:0px;pading:0px; font-size:12px; ">
  13.                2.
  14.                Андрющенко
  15.                </a>
  16.                <!-- ( Пригород
  17.                , )
  18.                -->
  19.                <br>
  20.                <p style="margin-bottom:6px; margin-top:2px; text-indent:0px;margin-left:10px">
  21.                <a href="/streets/723.htm" title="" style="text-indent:0px;margin:0px;pading:0px; font-size:12px; ">
  22.                3.
  23.                Б.Житомирская
  24.                </a>
  25.                <!-- ( Пригород
  26.                , )
  27.                -->
  28.                <br>';
  29.  
  30.  
  31.         preg_match_all("/[а-яА-Я.]{2,}/u", $text, $out_arr);
  32.         print_r($out_arr);
  33.         ?>


Результат почти получился верным
CODE (html):
скопировать код в буфер обмена
  1. Array ( [0] => Array ( [0] => Александровская [1] => Пригород [2] => Андрющенко [3] => Пригород [4] => Б.Житомирская [5] => Пригород ) )


Как из результатов убрать повторяющийся элемент "Пригород" ?
Delovoy Отправлено: 21 Января, 2011 - 14:57:44 • Тема: Капча и cURL • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3160
Мелкий пишет:
1) http://webo.in/articles/habrahab...data-url-images/
спасибо, получилось!!!
Мелкий ...реально Крупный! Превосходно

biperch пишет:
Delovoyне морочь себе голову
очень ценный коментарий ..спасибо

Здравствуйте, JustUserR Улыбка

JustUserR пишет:
Использование предполагаемого вами браузера может приводить к форсированному кешированию локальных элементов ассоциированных с некоторым фиксированным URL-адресом - поэтому его использование для тестирования такой системы не целесообразно

возможно ли отключить кеширование или каким инструментом лучше пользоваться ?
Delovoy Отправлено: 21 Января, 2011 - 14:32:03 • Тема: Капча и cURL • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3160
Champion пишет:
Почитайте механизм капчи и поймете, что ваши действия проблему не решат.
можете подсказать конкретно, где есть хорошее описание ?
если каждый раз значение капчи генерится случайным образом, тогда зачем сервер хранит их ?
я сделал проверку - просто в браузере ввел адрес капчи 3-х дневной давности
CODE (html):
скопировать код в буфер обмена
  1. http://ххх.com.ua/captcha/a7ee161016abbe72b9baa3f0542681a1.png

картинка доступна, код тот же самый ...

Мелкий пишет:
Т.е. вы думаете, что капча существует только для внесения неудобства пользователям?

я думаю, капча нужна для защиты от спама. в данном конкретном случае, я помогаю девушке, которая работает риэлтором. Автоматизирую подачу объявлений
Delovoy Отправлено: 21 Января, 2011 - 12:32:17 • Тема: Помогите с cURL • Форум: Программирование на PHP

Ответов: 2
Просмотров: 404
Edward пишет:
После запуска ничего не происходит, отснифил запросы, вроде обращается к серверу mail.ru с моими данными, но прежде почему то обращается ко всем поисковикам, точнее к большинству.
- Это нормально, собирается статистика посещаемости сайта и все в таком духе


судя по https://auth[dot]mail[dot]ru/cgi-bin/auth
тебе нужно добавить настройку SSL

//настройка SSL
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

Edward пишет:
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

первая сохраняет полученные от сайта куки
вторая - добавляет к твоему запросу полученные куки
Delovoy Отправлено: 21 Января, 2011 - 12:01:41 • Тема: Капча и cURL • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3160
Мелкий пишет:
Если URL капчи однозначно преобразовывается в текст капчи - то грош цена такой капче.
не совсем понял что имеется ввиду ?
URL капчи не преобразовывается в вводимый текст

884d06ab17e408443271164 686c49603.png = 3782 (значение кода на картинке)
т.е. никакого явного соответствия между картинкой и кодом нет

алгоритмы оптического распознования, в данном случае не подходят
сайт может поменять начертание, шрифт и т.д. и работу прийдется переделывать заново

вот досмотрелся еще до одного момента
когда я отправляю свой GET /captcha/...
то не вижу его отображения в программе просмотра http заголовков
(пользуюсь Мозила + LiveHTTPHeaders)
но при этом в ответ получаю картинку ...

сопутсвующий вопрос
PHP:
скопировать код в буфер обмена
  1. echo "Загружена капча!" .$cap . " <br/>";
попытка вывести картинку в браузер выводит абзац крякозябликов, а не картинку ...как сделать чтобы было видно именно картинку ?
Delovoy Отправлено: 21 Января, 2011 - 11:20:49 • Тема: Капча и cURL • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3160
ты имеешь ввиду прием, отправку кук ?
да, в коде есть

PHP:
скопировать код в буфер обмена
  1. //// Функции для обработки установливаемых сайтом кук.
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, "d:\out\my_cookies.txt");
  3. curl_setopt($ch, CURLOPT_COOKIEFILE, "d:\out\my_cookies.txt");
Delovoy Отправлено: 21 Января, 2011 - 10:20:15 • Тема: Капча и cURL • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3160
Задача: нужно сделать обход капчи
Аналитика:
есть сайт ххх
я на нем успешно авторизуюсь, захожу в раздел объявления
и при подачи объявления существует защита в виде капчи

просмотрел заголовки, которыми обменивается браузер с сервером
1. GET на получение страницы подачи объявления
2. бла-бла-бла
3. GET /captcha/884d06ab17e408443271164 686c49603.png HTTP/1.1

т.е. если я правильно понимаю то капчу мы получаем отдельным запросом и потом она уже отображается в форме ввода объявления

Что попробовал:
Вариант №1
Первое и самое простое. Открыл исходный код формы.
Нашел:
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="captcha_image" value="c3d2f19d9d39731827c14abc6a6eb472.png" />
  2. <div class="field captchafield ">
  3.                 <input name="captcha_guess" type="text" id="captcha_guess" class="textinput" value="" />
  4.                 <div class="required" title="Вы должны заполнить это поле для отправки формы">*</div>
  5. </div>
  6.  

поменял c3d2f19d9d39731827c14abc6a6eb472 .png на заведомо известное значение xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx.png с этого же сайта и в значении input name="captcha_guess" указал заведомо известные цифры!
Не прокатило ...
По всей видимости на сервере хранится идентификатор отправленной капчи и после получения ответа с данными формы сравнивается с тем, что отдавалось (отправлялось)

Вариант №2

Добавил в свой скрипт вызов метода GET для запроса капчи с сервера

PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_URL, "http://ххх.com.ua/captcha/a7ee161016abbe72b9baa3f0542681a1.png");
  2.  
  3. // установка метода передачи параметров
  4. curl_setopt($ch, CURLOPT_POST, 0);
  5.  
  6. // установка браузера
  7. curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
  8.  
  9.  
  10. // добавляем заголовков к нашему запросу.
  11.  $headers = array
  12.     (
  13.     'Accept: image/png,image/*;q=0.8,*/*;q=0.5',
  14.     'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  15.     'Accept-Encoding: deflate',
  16.     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  17. );
  18.  
  19.  
  20. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


Понятно, что в запросе я запрашиваю заренее известную мне капчу.
Теоритически ... после получения нового GET captcha от меня, сервер должен был перезаписать идентификатор отправленной капчи на мой и тогда вариант №1 прокатил бы, значения сошлись

но это теоретически ..практически пока не прокатывает ...
помогите разобраться !
Delovoy Отправлено: 18 Января, 2011 - 12:16:01 • Тема: Авторизация с cURL • Форум: Программирование на PHP

Ответов: 7
Просмотров: 4827
все! сдаюсь ))))))
Delovoy Отправлено: 17 Января, 2011 - 10:00:47 • Тема: Авторизация с cURL • Форум: Программирование на PHP

Ответов: 7
Просмотров: 4827
Убрал "лишние" символы и все заработало!
Спасибо, Мелкий!

Отдельное спасибо, JustUserR Радость
Ваш уровень трактования параметров моего запроса отличный от требуемого элемента кодирования, что скорее всего, как вы сами понимаете, является прямым следствием использования специфического построения излагаемых данных на этапе формирования ответа. Подумайте над этим ... Подмигивание
Delovoy Отправлено: 14 Января, 2011 - 18:32:37 • Тема: Авторизация с cURL • Форум: Программирование на PHP

Ответов: 7
Просмотров: 4827
О, спасибо! Дело сдвинулось с мертвой точки!
Нашел настройки отображения в журнале

получилось вот что:

Спойлер (Отобразить)



теперь собственно сам код авторизации:
PHP:
скопировать код в буфер обмена
  1.  // инициализация сеанса
  2.             $ch = curl_init();
  3.  
  4.             // установка URL и других необходимых параметров
  5.             curl_setopt($ch, CURLOPT_URL,"http://address.ua/");
  6.  
  7.             // установка метода передачи параметров
  8.             curl_setopt($ch, CURLOPT_POST, 1);
  9.            
  10.             // установка браузера
  11.             curl_setopt ($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.00");
  12.  
  13.             // добавляем заголовков к нашему запросу. Чтоб смахивало на настоящего пользователя :)
  14.             $headers = array
  15.                 (
  16.                 'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1',
  17.                 'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8',
  18.                 'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0',
  19.                 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'
  20.             );
  21.  
  22.             curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  23.  
  24.             // Прокси и авторизация
  25.             curl_setopt($ch, CURLOPT_PROXY, '10.224.100.2 : 18080');
  26.             curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:userpass');
  27.  
  28.             // Подделываем значение - откуда пришли данные.
  29.             curl_setopt($ch, CURLOPT_REFERER, "http://address.ua/");
  30.  
  31.            
  32.             // Функции для обработки установливаемых сайтом кук.
  33.             curl_setopt($ch, CURLOPT_COOKIEJAR, "d:\out\my_cookies.txt");
  34.             curl_setopt($ch, CURLOPT_COOKIEFILE, "d:\out\my_cookies.txt");
  35.        
  36.             // разрешить переадресацию
  37.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  38.  
  39.  
  40.             $param = 'formId=Logon
  41.                      &UserEmail=steel_d%40mail.ru
  42.                      &Password=address2010
  43.                      &RememberMe=false
  44.                      &x=50
  45.                      &y=12
  46.                          ';
  47.  
  48.  
  49.  
  50.             // параметры метода POST
  51.             curl_setopt($ch, CURLOPT_POSTFIELDS,$param);
  52.  
  53.  
  54.             // загрузка страницы и выдача её браузеру
  55.             $out = curl_exec($ch);
  56.  
  57.             // завершение сеанса и освобождение ресурсов
  58.             curl_close($ch);


но выдается повторно страница авторизации! следовательно авторизация происходит с ошибкой ...
подскажите где накосячил ?
Delovoy Отправлено: 14 Января, 2011 - 10:00:49 • Тема: Авторизация с cURL • Форум: Программирование на PHP

Ответов: 7
Просмотров: 4827
Хочу написать скрипт, который автоматически авторизуется на сайте, но не до конца понимаю как это сделать!

Установил Proxomitron
получил следующую картину авторизации на сайте:

Цитата:

+++GET 35+++
Using Proxy - 10.224.100.2:18080
POST http://www[dot]cis[dot]net[dot]ua/Content/It[dot][dot][dot]inIntoSystem.php HTTP/1.0
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.00
Host: www[dot]cis[dot]net[dot]ua
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Proxy-Authorization: Basic a292YWxza2l5OmJlcmdoZWFz
Referer: http://www[dot]cis[dot]net[dot]ua/Content/It[dot][dot][dot]inIntoSystem.php
Cookie: b=b; iua=1; phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bi%3A-1%3B%7D; documentation=t7ekp8qg25bmdcvr6irfin70q2; b=b; iua=1
Cookie2: $Version=1
Content-Length: 27
Content-Type: application/x-www-form-urlencode d
Connection: keep-alive
Posting 27 bytes...

+++RESP 35+++
HTTP/1.0 200 OK
Date: Fri, 14 Jan 2011 07:58:26 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
X-Cache: MISS from mx.cis.net.ua
Proxy-Connection: close


В самой форме авторизации вводятся всего два параметра:
логин и пароль
Логично было бы, если бы они передались как параметры метода POST
но как это происходит ...не пойму
в данном листинге никакие параметры не передаются или я ошибаюсь ?
Delovoy Отправлено: 12 Января, 2011 - 14:22:11 • Тема: Авторизация с cURL • Форум: Программирование на PHP

Ответов: 0
Просмотров: 186
Хочу написать скрипт, который автоматически авторизуется на сайте, но не до конца понимаю как это сделать!

Установил Proxomitron
получил следующую картину авторизации на сайте:

Цитата:
+++GET 3380+++
Using Proxy - 10.224.100.2:18080
POST http://www[dot]cis[dot]net[dot]ua/Content/It[dot][dot][dot]inIntoSystem.php HTTP/1.0
User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.00
Host: www[dot]cis[dot]net[dot]ua
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Proxy-Authorization: Basic a292YWxza2l5OmJlcmdoZWFz
Referer: http://www[dot]cis[dot]net[dot]ua/Content/It[dot][dot][dot]inIntoSystem.php
Cookie: b=b; iua=1; phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bi%3A-1%3B%7D; documentation=osrc1lat3pf5skqpjqceiuuo96; b=b; iua=1
Cookie2: $Version=1
Content-Length: 26
Content-Type: application/x-www-form-urlencode d
Connection: keep-alive
Posting 26 bytes...

+++RESP 3380+++
HTTP/1.0 302 Moved Temporarily
Date: Wed, 12 Jan 2011 12:08:55 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: ../../
Content-Type: text/html
X-Cache: MISS from mx.cis.net.ua
Proxy-Connection: close
+++CLOSE 3380+++


В самой форме авторизации вводятся всего два параметра:
логин и пароль
Логично было бы, если бы они передались как параметры метода POST
но как это происходит ...не пойму
в данном листинге никакие параметры не передаются или я ошибаюсь ?
Delovoy Отправлено: 11 Января, 2011 - 09:50:08 • Тема: Урок № 14 - CURL • Форум: Уроки php

Ответов: 9
Просмотров: 167
спасибо за ответ Улыбка
вопрос решил уже - пишу как, может кому-то сгодится Улыбка

PHP:
скопировать код в буфер обмена
  1.  curl_setopt($ch, CURLOPT_PROXY, '10.224.100.2 : 18080');


у нас стоит прокси сервер! и если через браузер (в котором прокси указан в настройках) мы переходим на внешние сайты без проблем, то для cURL нужно было указывать отдельно!

Страниц (5): « 1 2 3 [4] 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB