Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос данных с сервера скриптом, помогите неэксперту: что делает код? 
:(
    Опции темы
_Y_
Дата 6.11.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Здравствуйте! Не мог бы кто-нибудь из экспертов взглянуть на код страницы, основанной, судя по всему на  JavaScript?

Задача: Имеется публично доступная БД, с которой можно работать из браузера. К сожалению, работать можно только глазами или руками через copy-paste. А нужно програмно сравнивать результаты разных запросов и т.п.

Стал писать обращающуюся к серверу программу (на Java). Все получается, но распарсить страницу не удается. В исходном HTML нет информации, которую браузер показывает на экране. Возникло стойкое подозрение, что информация эта докачивается JavaScript-ом и вставляется в код HTML динамически.

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

Не будете ли любезны взглянуть на страницу и сказать что запрашивает скрипт у сервера? Может я смогу имитировать запрос в Java и парсить уже его?

Вот пример HTML страницы. Если открыть HTML код, сразу видно, что основной информации в нем нет. А вот для понимания откуда он там берется моих знаний не хватает.

Спасибо!




--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Dastan
Дата 6.11.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.9.2010

Репутация: 1
Всего: 5



PM MAIL   Вверх
_Y_
Дата 6.11.2010, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Цитата(Dastan @  6.11.2010,  14:52 Найти цитируемый пост)
это? 


Именно! А как его удается извлечь? Точнее, как его найти в тексте кода или где-то еще?


Это сообщение отредактировал(а) _Y_ - 6.11.2010, 16:37


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Dastan
Дата 6.11.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.9.2010

Репутация: 1
Всего: 5



Цитата(_Y_ @  6.11.2010,  16:36 Найти цитируемый пост)
Именно! А как его удается извлечь?

я смотрел в firebug

Цитата(_Y_ @  6.11.2010,  16:36 Найти цитируемый пост)
Точнее, как его найти в тексте кода или где-то еще?

у меня сейчас времени нет, но могу подсказать

там есть такой код, параметры похожи
Код

<!-- meta -->
<meta name="ncbi_app" content="entrez" /><meta name="ncbi_db" content="nuccore" />
<meta name="ncbi_report" content="genbank" /><meta name="ncbi_format" content="html" />
<meta name="ncbi_pagesize" content="20" />
<meta name="ncbi_sortorder" content="default" /><meta name="ncbi_pageno" content="1" />
<meta name="ncbi_resultcount" content="1" />
<meta name="ncbi_op" content="retrieve" /><meta name="ncbi_pdid" content="genbank" />
<meta name="ncbi_sessionid" content="CE8824DBCD53F581_0149SID" />
<meta name="ncbi_uidlist" content="37703934" /><meta name="ncbi_filter" content="all" />
<meta name="ncbi_stat" content="false" />
<meta name="ncbi_hitstat" content="true" />


Код

<script type="text/javascript" src="/portal/portal3rc.fcgi/387882/js/194432/81765/35445/66022/31971/35962/33966/
33536/46401/54523/69007/81314/3423/111973/3452/47466/3302/3193/112020/54525/35426.js" snapshot="nuccore"></script>

вроде бы здесь формируется ссылка
Код

// create main part of URL to viewer (don't include report param)
    CreateUrl: function(FlatFileNode){
        // create URL to fetch report
        var x = Portal.Portlet.Sequence_ViewerReport;
        var dopt = this.getValue('dopt');
        if (x.master == 'false' && dopt.toLowerCase() == 'genbank'){ dopt = 'gbwithparts';}
        
        var URL =  "val=" + FlatFileNode.getAttribute('val')
          + "&db=" + this.getValue('db')
          + "&dopt=" + (dopt == "fasta_text" ? "fasta" : dopt)   
          + "&extrafeat=" + x.extrafeat
          + "&fmt_mask=" + x.fmt_mask
...


Это сообщение отредактировал(а) Dastan - 6.11.2010, 16:59
PM MAIL   Вверх
_Y_
Дата 6.11.2010, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Dastan, спасибо, шаг вперед сделан. Но до финиша еще огого smile 

Цитата(Dastan @  6.11.2010,  16:56 Найти цитируемый пост)
я смотрел в firebug
 Для меня это, к сожалению, совершенно непонятно.

Цитата(Dastan @  6.11.2010,  16:56 Найти цитируемый пост)
там есть такой код, параметры похожи...
 Как понимать эти метатеги я тоже не знаю к сожалению.

Что касается самого скрипта, то формирование ссылки стало понятно, но вот как извлечь все данные для нее?

Как я понял конструкции
Код

var dopt = this.getValue('dopt');
this.getValue('db')

просто извлекают значения value из строк HTML
Код

<input name="EntrezSystem2.PEntrez.Nuccore.Sequence_ResultsPanel.SequenceViewer.Sequence_ViewerReport.db" sid="1" type="hidden" value="nuccore" />
<input name="EntrezSystem2.PEntrez.Nuccore.Sequence_ResultsPanel.SequenceViewer.Sequence_ViewerReport.dopt" sid="1" type="hidden" value="genbank" />


А вот разобраться откуда берется значение получаемое конструкцией FlatFileNode.getAttribute('val') и как формируются значения полей объекта x = Portal.Portlet.Sequence_ViewerReport; моих скудных знания javascript не хватило smile 



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.