Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2012, 07:51
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 19.11.2010
Сообщений: 143

Парсинг сайта почты России(что-то такое они изобрели)
Всем доброго времени суток!
Есть скрипт, который до недавнего времени прекрасно работал и парсил данные о стоимости доставки. НО настал тот самый "прекрасный момент" и на сайте почты изобрели что-то такое, что безошибочно определяет, что на сайт пришел робот... Полная имитация браузера пришедшего с основной страницы не помогает, ибо даже главная страница не открывается. Вместо кода со стоимостью возвращается волшебный код бесконечного редиректа:
<html><head></head><body onload="document.myform.submit();"><form method="post" name="myform" style="visibility:hidden;"><input id="key" name="key" value="425908"/><input type="submit"/></form></body></html>

собственно сам скрипт (дошел до главной страницы пытаясь получить куки, но в ответе всегда редирект)
Да и еще ОЧЕНЬ ВАЖНЫЙ момент, если зайти на сайт почты через браузер, даже на главную страницу, то потом примерно минут пять десять, скрипт будет работать!!! Потом снова отвалиться. Дело тут не в куках ибо куки у меня пишутся в файл. Если смотреть после открытия страницы смотреть в файлах, то куки пишутся, как только скрипт отваливается, куки пропадают. Мой мозг расплавлен. Что еще можно сделать, чтобы получить страницу? Пробовал по всякому начиная от простого file_get_contents и сокетов, заканчивая курлом, на чем пока и остановился за неимением других идей... Очень надеюсь на вашу помощь...
админ удалил страшный код ибо место ему на пастбинах
__________________


Последний раз редактировалось Илья Кантор, 31.08.2012 в 08:51.
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2012, 08:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Slavenin,
Гы - Жулики - в ответ на запрос - они посылают сперва страницу формы с автосубмитом, которую вы не принимаете и не отсылаете назад - так они определяют ботоф

Страница в ответ на запрос
'http://www.russianpost.ru/autotarif/Autotarif.aspx?viewPost=36&countryCode=643&typePos t=1&viewPostName=%D0%A6%D0%B5%D0%BD%D0%BD%D0%B0%D1 %8F%20%D0%BF%D0%BE%D1%81%D1%8B%D0%BB%D0%BA%D0%B0&c ountryCodeName=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B 9%D1%81%D0%BA%D0%B0%D1%8F%20%D0%A4%D0%B5%D0%B4%D0% B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F&typePostName=%D0% 9D%D0%90%D0%97%D0%95%D0%9C%D0%9D.&weight=1320&valu e1=0&postOfficeId=170039');


<html>
  <head>
    <meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
    <title/>
  </head>
  <body onload="document.myform.submit();">
    <form method="post" name="myform" style="visibility:hidden;">
      <input id="key" name="key" value="872836"/>
      <input type="submit"/>
    </form>
  </body>
</html>

value="872836" генерицо произвольный , в зависимости от текущего пользователя

Нужно принять и отправить форму и получите страницу с данными
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2012, 09:23
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 19.11.2010
Сообщений: 143

неа, при отправке такой формы в ответ снова приходит эта же форма. Я собственно о ней узнал по бесконечному редиректу при выводе ответа в браузер. Вы немного не внимательно прочитали то, что я написал:
Цитата:
Да и еще ОЧЕНЬ ВАЖНЫЙ момент, если зайти на сайт почты через браузер, даже на главную страницу, то потом примерно минут пять десять, скрипт будет работать!!! Потом снова отвалиться.
к тому же, я отслеживал полностью сетевую активность на странице почты, там нет этого промежуточного этапа с формой.
__________________


Последний раз редактировалось Slavenin, 28.08.2012 в 09:26.
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2012, 09:26
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Slavenin,
Вы проверьте куки которые приходят с формой - очевидно они отличны от ранее посылаемых ( посылаются куки к данной форме
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2012, 09:35
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от Slavenin
к тому же, я отслеживал полностью сетевую активность на странице почты, там нет этого промежуточного этапа с формой.
Гы как нет - отключите ява скрипт и брауз зависнет на этой форме
Ответить с цитированием
  #6 (permalink)  
Старый 28.08.2012, 09:40
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 19.11.2010
Сообщений: 143

куки у меня пишутся и принимаются.
странно, что этот пересыл не отображается в сетевой активности...
сейчас попробую поиграться с формой...
хотя это не объясняет факта работоспособности скрипта на продолжении 5-10 минут после посещения сайта
__________________


Последний раз редактировалось Slavenin, 28.08.2012 в 09:45.
Ответить с цитированием
  #7 (permalink)  
Старый 28.08.2012, 09:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Slavenin,
Отключите ява скрипт и воткните в адресную строку
удален длинный код админом

Кука там два
ASP.NET_SessionId:
SessionId:

Последний раз редактировалось Илья Кантор, 31.08.2012 в 08:52.
Ответить с цитированием
  #8 (permalink)  
Старый 28.08.2012, 09:58
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 19.11.2010
Сообщений: 143

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

победа!!!
Deff, огромная вам благодарность!!! С меня +!
__________________


Последний раз редактировалось Slavenin, 28.08.2012 в 11:16.
Ответить с цитированием
  #9 (permalink)  
Старый 28.08.2012, 11:16
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Slavenin,
Эти два кука должна отдать форма (*эта форма, вместе с перезапросом
если куки уже стоят и отдаются при перезапросах, - форма не подгружаецо

Куки стоят на текущую сессию - т.е они отправляются с каждым запросом любой страницы с сайта
Куки генерит именно эта форма - с этой страницы и нужно их считать

Последний раз редактировалось Deff, 28.08.2012 в 11:19.
Ответить с цитированием
  #10 (permalink)  
Старый 31.08.2012, 09:43
Новичок на форуме
Отправить личное сообщение для Dronello Посмотреть профиль Найти все сообщения от Dronello
 
Регистрация: 31.08.2012
Сообщений: 2

а можно пример поподробнее - как отсылать вторую форму где есть поле "key"

форму получаю - отсылаю - опять форма приходит та же самая и куки пустые (файл на серваке не формируется)

значение этого key выковыриваю - отправляю по тому же адресу форму - а в ответ куки не приходят


upd - сузил пока проблему - форма уходит в постоянную перезагрузку и файл куков пустой...

Последний раз редактировалось Dronello, 31.08.2012 в 11:52.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое class и для чего они нужны нуб Общие вопросы Javascript 6 29.11.2011 21:31