5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|
1 | |
Парсер для результатов запроса24.10.2012, 17:26. Показов 3670. Ответов 30
Метки нет (Все метки)
На форме сайта есть 2 Edit-а в которых вводиться пункт отправления и пункт назначения. Точное количество и их название неизвестно. Для кортежа (рейса) есть первичный ключь он же номер рейса. Так же этот номер рейса служит ссылкой на полное расписание этого рейса с пунктами остановки и прочим. Необходимо эти все рейсы спарсить в базу на железо.
На входе парсер получает 2-а файла (пункты отправления и пункты назначения) Для каждого пункта, парсер делает поиск рейсов, собирает их в отдельную таблицу (рейсы) Дальше для каждого рейса получаем его рассписание и сохраняем в отдельную таблицу (рассписания) с привязкой к данному рейсу. Нужен алгоритм действий. Нужен пример для запроса на ресурс для поиска. Нужна идею как связать таблицы по номеру рейса. http://apikabu.ru/img_n/2012-10_5/c2e.jpg
0
|
24.10.2012, 17:26 | |
Ответы с готовыми решениями:
30
Парсер результатов Многопоточный парсер и сохранение результатов Вычитание результатов одного запроса из результатов другого Парсер файла в двумерный массив и отображение результатов |
24.10.2012, 20:25 | 2 |
имхо анализировать через FireBug запросы которые делает сайт и эмулировать через TIdhttp + регулярные выражения
или работать через TEmbededWB + jsEmbeddedWB и также после анализа блоков на сайте проводить запросы и нажимать на ссылки через DOM или JavaScript(Jquery)
1
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|
24.10.2012, 22:06 [ТС] | 3 |
вот уже набросал, во вложении и сылка
0
|
24.10.2012, 23:08 | 4 |
на сайте используется javascript и сайт не работает в браузере если JS отключен (ссылка на запрос не работает)
и судя по отчету FireBug indy тут не проедет. Используйте схему TEmbebedWB + jsEmbeddedWB или TWebbrowser + jsWebbrowser
1
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|
24.10.2012, 23:34 [ТС] | 5 |
С этим есть проблемы. Не могли бы помочь разобраться?
Ни разу не работал с этим и хотя бы простой пример помогбы сдвинуть дело в положительную сторону
0
|
25.10.2012, 01:18 | 6 | |||||
Сообщение было отмечено как решение
Решение
1
|
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 260
|
|
25.10.2012, 18:28 | 7 |
гымс
Однако параметры на скрине ооочень походи на то, что сайт написан на ASP. В принципе при приложении рук и головы - все резается без всяких браузеров. По крайней мере синапсом без проблем всегда их проходил
0
|
25.10.2012, 19:36 | 8 |
A чем отличается программа на indy от программы с использованием TWebbrowser(TEmbededWB).
Кроме жесткой зависимости от Windows и IE. Если главный аргумент быстродействие то TEmbededWB имеет 100500 настроек для оптимизации с точки зрения парсинга программа на TWebbrowser реализуется "дешевле" по времени и простоте работы с DOM
0
|
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 260
|
|
26.10.2012, 11:35 | 9 |
Отличается (точнее, про индейцев не могу сказать, давно не работал, только про синапс) - тем, что не надо:
1. мидитировать с интерфейсами 2. забыть про туеву кучу не нужной инфы (тянеш только то, что нужно) 3. легче работать с проксями 4. не нужно забивать себе голову вопросом "да как же, блин, добраться до этой кнопочки/поля" единственный минус - с явой иногда приходится повозится Добавлено через 9 минут дополнение 5. в дополнение к п.2 - с использованием веббраузера забываем про API и подобные запросы (к примеру сайт твиттера реально работает на своем API). Для информации - сканер пабликов для контакта (тупой перебор чуть больше 44 млн ID) - отработал часа за три и благополучно собрал все 3217490 пабликов (это на вчерашний день, счас может и больше) 6. с браузером благополучно забываем про многопоток (в решении п. 5 он и использовался, 50 потоков шуршало) Нуууу, здесь я могу поспорить . Регулярками решается все элементарно и просто, а в некоторых случаях и регулярки нафиг не нужны - на прямую с XML/JSON работаеш
1
|
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 260
|
|
26.10.2012, 13:46 | 11 |
не только .
2gis.ru - элементарный ajax пользуется, можно браузером в один поток "всасывать", а можно разобрать ajax запросы и потоков в 20-50 баренько забрать
1
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|||||||||||
27.10.2012, 01:05 [ТС] | 12 | ||||||||||
Спасибо за пример, вот допиливаю этот вариант и появилась проблемка, выбивает ошибку. Так при же разборе данных не могу разобраться в том, где какие данные
конкретно непонятно это
0
|
27.10.2012, 09:26 | 13 |
после анализа блоков на сайте через FireBug там используется Jquery в качестве "парсера"
Формируем 2 массива var mass = []; var mass2 = []; и заносим в них в цикле $.each нужные данные из блоков на странице. так как массивы одномерные то их можно извлечь через web.getJsStrings('mass',s1); web.getJsStrings('mass2',ListBox1.Items) документацию на Jquery можно найти в инете и почитать чо там как
0
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|
27.10.2012, 15:41 [ТС] | 14 |
Ок, разберу тогда сам, вот на чем остановился мой проект. Помогите получить все данные из таблиц, а я уже сам разберу их. Читал про Jquery, там тип находим тег за который цепляемся и читаем с его, но как ни вникал не пробовал выводить в Вашем примере что в лэйблы и прочее, так и не понял его работу(( в добавок или он некорректно срабатывает или это так написано, от этого запутался еще больше((
0
|
27.10.2012, 17:21 | 15 | |||||
0
|
27.10.2012, 17:31 | 16 |
впринципе можно первую таблицу также распарсить также как вторую через getElementsByTagName и getElementChildren
только надо будет дополнительно всеже сохранить содержимое ссылок в s1 через getJsStrings Добавлено через 5 минут ** UPD там еще баг в цикле. Надо писать for i := 0 to high(trs) do begin
1
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|||||||||||
28.10.2012, 13:09 [ТС] | 17 | ||||||||||
Это я так понял вот тут
0
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
|
28.10.2012, 19:09 [ТС] | 18 |
procedure TEmbeddedWB. getElementsByTagName
(tag:string; var elements: Helems; attr: string = ''; value: string = ''); Записывает в elements все элементы удоволетворяющие следующим условиям tag = название тега attr = название аттрибута value = значение аттрибута Это весьма помогло И так, сделал как и было сказано, разабрал по такому же принципу данные с первой таблицы. Только вот с закрытыми полями незадача, там тип другая пара тегов
0
|
5 / 5 / 0
Регистрация: 07.07.2012
Сообщений: 32
|
||||||
30.10.2012, 23:07 [ТС] | 20 | |||||
Не выходит, вот что пишу для заполнения первой таблицы
0
|
30.10.2012, 23:07 | |
30.10.2012, 23:07 | |
Помогаю со студенческими работами здесь
20
Парсер страницы сайта с добавлением результатов в DGV Сортировка результатов запроса Нумерация результатов запроса Объединение результатов запроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |