Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№109-09-2014 19:24:41

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

savedocument

Здравствуйте уважаемые .
Мне нужно распарсить страницу нагруженную скриптами.
В просмотре кода страницы нужные данные отсутствуют , зато все есть
при записи страницы из мозиллы и хрома.
Подключил к своей программе xulrunner и споткнулся на
savedocument(path,mime type) , mime type не могу найти описания.
savedocument(path) сохраняет htm без нужных данных .
Не подскажете ли в чем проблема ? надо искать как использовать mime type
или xulrunner не умеет сохранять страницы полностью как мозилла ?

Отсутствует

 

№210-09-2014 04:24:21

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

okkamas_knife пишет

не совсем понятно как получаешь страницу.
всё дело в том что те данные как я понимаю генерятся или получаются откудато скриптами
соответственно тебе надо не парсить хтмл а посмотреть откуда берутся эти данные и вытягивать их
т.е. если тянется откудато json (как обычно ща делают) то тянешь и парсишь его если данные генерятся скриптами то выясняй как и на основе чего и генери их сам.
зы если нужно именно так как ты хочешь то можешь распаковать omni.ja из лисы(это рахив там собственно большая часть кишочков лисы) и посмотреть как там организовано сохранение (смотришь в инспекторе название функции что вызывается в меню файл сохранить и даёшь поиск по ней ну а дальше разгребаешь скрипты что куда и как)

Спасибо за ответ .
Покопаю omni.ja , тут сложность в том что все надо копать с нуля так как я от слова "скрипт" вздрагиваю , а там не только js но и PHP .
Работаю исключительно на шарпе и решаю НЕ интернетовские задачи и синтаксис у пхп офигенный .
Самый легкий и быстрый для меня вариант получить полный htm на диск или в строку , а его разобрать уже не сложно .

Отсутствует

 

№310-09-2014 04:55:55

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

Посмотрел omni.ja , че-то затупил .
savedocument это не из js это из geckofx-winform , прокладка dll для xulrunner .
В js savedocument совсем с другими параметрами .
Я согласен с Вами про изврат , но задача единичная и маленькая , изучать для нее js офигеть .
Скорость не критична даже если сохранение и чтение будет 2-3 сек .
А самое главное я не уверен что программисты этого ресурса в очередной раз не изменят код ,
поэтому htm на диск вариант более надежный .
Не понятно почему нужно подключать браузер мозилла если xulrunner это и должен быть браузер мозилла ?
Спасибо за помощь .

Отредактировано softbob (10-09-2014 04:58:34)

Отсутствует

 

№410-09-2014 07:44:41

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

А можно тупой вопрос .
Есть поле на форме в которое заносится фамилия

Выделить код

Код:

<tr>
        <td style="width: 33%;" class="formLabel">Фамилия</td>
<td style="width: 67%;"><input type="text" id="s_p_name" class="formEdit" style="width: 260px;"></td>
    </tr>

Потом это должно использоваться в поиске , вот кусок функции поиска

Выделить код

Код:

var p_name = $("#s_p_name").val();

Вот это #s_p_name это должно содержать то что набрано в s_p_name ?
что такое # я не нашел в java . А это $("#s_p_name").val() это php ?
И как s_p_name отображается если у него нет атрибута value ?
Если смотреть код страницы то у этого поля нет содержимого , но на экране то оно есть .
Блин , я даже начала не могу понять . Все переменные в поиске обьявлены как var , по
Java это локальная переменная и доступа к ней у меня быть не должно , где производится
присвоение значения полю на экране "s_p_name" не найду , ну и т.д. и т.п...

Отсутствует

 

№510-09-2014 09:35:16

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

Выделить код

Код:

var p_name = content.document.getElementById("s_p_name").value();

Отлично , но

Выделить код

Код:

<tr>
        <td style="width: 33%;" class="formLabel">Фамилия</td>
<td style="width: 67%;"><input type="text" id="s_p_name" class="formEdit" style="width: 260px;"></td>
    </tr>

Нет value поэтому
geckoWebBrowser1.Document.getelementbyid('s_p_name').getattribute('value') возвращает пусто .
Если на странице в поле s_p_name написано "Иванов" то при просмотре кода страницы иванов
в тексте html нет ни где . Из этого следует что иванов хранится где-то в переменной и динамически отображается
, а как добраться до переменных если они все локальные я не понимаю .
Ну буду ковырять , спасибо за участие .

Отсутствует

 

№610-09-2014 16:34:21

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

Уважаемый okkamas_knife . Проблему почти решил , как Вы и советовали без записи на диск .
Остался последний вопрос . Есть ли в скрипте возможность смены кодировки переменных ? например в unicode
В документации не нашел .

Отсутствует

 

№711-09-2014 05:09:01

softbob
Участник
 
Группа: Members
Зарегистрирован: 09-09-2014
Сообщений: 15
UA: Chrome 37.0

Re: savedocument

Видимо у меня проблемы с инструментом программирования .
Это редкий язык Clarion# . Вот так все работает, в alert отображается правильно

Выделить код

Код:

context.evaluatescript('var x = $("#persname").val();alert(x);',out cluc)

. Вот так должен возвращаться результат

Выделить код

Код:

context.evaluatescript('$("#persname").val()',out cluc)

В cluc возвращается результат в виде крякозябров . Должно быть что-то вроде

Выделить код

Код:

$("#persname").val().convert.ansii .

Интересно что value из полей возвращается правильно и только из скрипта нет .
Как я понимаю возможно создать поле с атрибутом value в открытой странице , присвоить ему значение
из скрипта и уже потом взять значение из value ?

Отредактировано softbob (11-09-2014 05:10:03)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]