|
Парсинг сайтов средствами 1С | ☑ | ||
---|---|---|---|---|
0
mzelensky
21.12.12
✎
08:50
|
Доброго всем!
Есть сайт. На определенной страничке выводится таблица с информацией. Информация тянется из базы средствами ПХП. Вот ссылки: <a href="#" pageNum="2" class="pag_n" style="TEXT-DECORATION: none;">2</a> <a href="#" pageNum="3" class="pag_n" style="TEXT-DECORATION: none;">3</a> <a href="#" pageNum="4" class="pag_n" style="TEXT-DECORATION: none;">4</a> и так далее. Я хочу открыть первую страницу, нажать волшебную кнопку и система должна обойти все эти странички. Как реализовать такой обход?! |
|||
1
mzelensky
21.12.12
✎
09:02
|
ye fgye
|
|||
2
бомболюк
21.12.12
✎
09:13
|
открыть для себя HTML DOM Document
|
|||
3
mzelensky
21.12.12
✎
09:14
|
(2) что за зверь?!
|
|||
4
Asmody
21.12.12
✎
09:17
|
(2) а если там разметка не валидная?
|
|||
5
Asmody
21.12.12
✎
09:17
|
(3) СП продать?
|
|||
6
mzelensky
21.12.12
✎
09:20
|
(3) продавай! Ток по новогодним скидкам.
|
|||
7
бомболюк
21.12.12
✎
09:20
|
(4) а это как так? типа в браузере отобразится, а дом-документом не проглотится?
|
|||
8
mzelensky
21.12.12
✎
09:20
|
(6) -> (5)
|
|||
9
mzelensky
21.12.12
✎
09:21
|
(7) примерчик можно?!
|
|||
10
бомболюк
21.12.12
✎
09:23
|
(9) это он и есть:
ПолеHTMLДокумента.Документ (HTMLDocumentField.Document) ПолеHTMLДокумента (HTMLDocumentField) Документ (Document) Использование: Только чтение. Описание: Тип: COMОбъект. Предоставляет доступ к HTML документу. Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. |
|||
11
kabanoff
21.12.12
✎
09:24
|
(9) Вот так с помощью HTML DOM можно парсить, например, сайт nix.ru:
|
|||
12
бомболюк
21.12.12
✎
09:26
|
+(11) а тебе нада
Для к = 0 по Элемент.Документ.links.length - 1 цикл HTMLСсылка = Элемент.Документ.links.item(к); // ... КонецЦикла; |
|||
13
mzelensky
21.12.12
✎
09:31
|
Так мне не просто пропарсить нужно! Пропарсить не проблема.
Я найду в тексте ссылку вот эту: <a href="#" pageNum="2" class="pag_n" style="TEXT-DECORATION: none;">2</a> а как мне ее выаолнить?! Т.е. я беру начальную страницу. Нажимаю кнопочку. 1С-ка парсит страницу, берет нужную инфу с нее. Затем находит ссылку на следующуб страницу (что выше) и переходит по ней. И далее алгоритм повторяется до конца (по всем страница или по ограниченному количеству). |
|||
14
бомболюк
21.12.12
✎
09:37
|
(13) ну получил интерфейс IHTMLElement, относящийся к ссылке, выдрал оттуда атрибут href - и пошел по нему, и так далее.
|
|||
15
бомболюк
21.12.12
✎
09:42
|
+(14) применительно к 1С это вот так будет выглядеть
АтрибутHREF = HTMLСсылка.getattribute("href", 0); |
|||
16
kabanoff
21.12.12
✎
09:42
|
(13) Про рекурсию расказать?
|
|||
17
mzelensky
21.12.12
✎
09:43
|
(16) да я знаю про рекурсию!
Ты видишь ссылку, что я показал в примере? <a href="#" pageNum="2" class="pag_n" style="TEXT-DECORATION: none;">2</a> т.е href="#" - как мне по ней идти?? |
|||
18
бомболюк
21.12.12
✎
09:46
|
у блин а я то думал это ты просто сайт решил не показывать. Ну я тогда не знаю, там наверна какие нить обработчики навешиваются с помощью Джавы, а ваще хз, не сталкивался.
|
|||
19
mzelensky
21.12.12
✎
09:49
|
(18) в том и дело! ТАм как-то вот этот параметр должен обрабатываться "pageNum="2""
|
|||
20
kabanoff
21.12.12
✎
09:58
|
(17) Посмотри в коде страницы ява-скрипт по классу pag_n. Скорее всего там какой-то обработчик вызывается.
|
|||
21
mzelensky
21.12.12
✎
10:04
|
(20) уже смотрел. Явно такого нет. Но там два файла явовских (модуля) подключаются.
<SCRIPT type="text/javascript" src="include/goingexp.js"></SCRIPT> <SCRIPT type="text/javascript" src="include/hidecols.js"></SCRIPT> |
|||
22
бомболюк
21.12.12
✎
10:10
|
(21) раскроешь домен дело пойдет быстрее
|
|||
23
Igor 2007
21.12.12
✎
10:10
|
Когда обмен делал с Лотусом. Парсингом занимался *.xml файлов. Объект "План обмена" даже создал. Вроде там есть код: http://infostart.ru/public/82141/
|
|||
24
mzelensky
21.12.12
✎
10:12
|
(22) не могу - там доступ платный. А доступ к инфе, разумеется, возможен только после аутентификации и оплате.
|
|||
25
бомболюк
21.12.12
✎
10:14
|
тогда файлы эти ищи на сервере, а потом их гляди
|
|||
26
Адинэснег
21.12.12
✎
10:14
|
HTTPСоединение.Получить (HTTPConnection.Get)
HTTPСоединение (HTTPConnection) Получить (Get) Синтаксис: Получить(<Источник>, <ИмяВыходногоФайла>, <Заголовки>) Параметры: <Источник> (обязательный) Тип: Строка. Адрес ресурса на сервере. <ИмяВыходногоФайла> (обязательный) Тип: Строка. Имя файла, в который помещаются данные полученного ресурса. <Заголовки> (необязательный) Тип: Строка. Указываются заголовки, добавляемые к запросу на сервер. Текстовые пары вида <Заголовок>:<Значение>, разделяемые комбинацией ВК + ПС. Описание: Получает ресурс из указанного адреса. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
27
mzelensky
21.12.12
✎
10:14
|
(23) не совсем понял, а причем тут парсинг xml файлов???
У меня в другом затык. Читай (17) |
|||
28
Адинэснег
21.12.12
✎
10:16
|
href="#"
это она сама на себя ссылается |
|||
29
mzelensky
21.12.12
✎
10:17
|
(28) эт понятно. Там ключевой момент
pageNum="2" class="pag_n" |
|||
30
mzelensky
21.12.12
✎
10:19
|
(28) подскажи, как передать эти параметры?!
|
|||
31
Адинэснег
21.12.12
✎
10:20
|
сайт то засвети уже) а мы посмотрим)
|
|||
32
Анатолий Никитин
21.12.12
✎
10:22
|
(29) сморти как сам сайт ссылку формирует, и формируй такую же свою программой, потом переходи по ссылке и заново выполняй свой алгоритм.
|
|||
33
бомболюк
21.12.12
✎
10:23
|
может попробовать FireBug поглядеть, закладка Net? Только в качестве предположения.
|
|||
34
mzelensky
21.12.12
✎
10:23
|
(31) да ты не зайдешь на него. Там платное все. Ты до этой инфу (страницы) не доберешься.
|
|||
35
mzelensky
21.12.12
✎
10:25
|
Тут другая идея родилась.
Взять прогу, которая запоминает действия пользователя и повторяет их потом. Типа эмулытора. Задать ей действия сохранять странички как внешний файл, а потом переходить на следующую страницу. и так далее... А уже потом имеющиеся файлики пропарсить. |
|||
36
Адинэснег
21.12.12
✎
10:55
|
Чарли
|
|||
37
Адинэснег
21.12.12
✎
10:55
|
charles
|
|||
38
Адинэснег
21.12.12
✎
10:57
|
все респонсы в чалри можно экспортировать в файлы
|
|||
39
mzelensky
21.12.12
✎
11:21
|
(38) а теперь по русски и более подробно плиз
|
|||
40
Elisy
21.12.12
✎
11:49
|
(17) Похоже на фреймворк типа JQuery. При загрузке страницы срабатывает скрипт, который ставит обработчик событий на click каждого элемента. Но не понятно какое действие - потому что возможен не переход на другую страницу, а обновление части текущей страницы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |