Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.09.2010, 15:06
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию опять HTML, парсинг, бд и тд...

Добрый день. Прошу прощенья за,наверно, тысячный вопрос одного типа..но ситуация требует((
Коротко: я увы начинающий прогер. даже толком книги не дочитал..(в процессе),хотя образование прогера (среднее спец) получил=)кое что знаю..
вот с парсингом не встречался ниразу..2 дня гуглил..быстро бегал глазами по форумам но находил кусочки..кое что понял..кое что хочу понят.вот к вам решил обратится. Выручите пожалста.
ТЗ:
1 есть бд с полем id..в нем цифры.. от 100 полей и выше..(базы предположительно будут разные)..
2 есть сайт (без авторизации).. с полем "ххх" и кнопкой "поиск"(сайт налоговой,да еще и скриптовый, те поиск устроен не как в яндексе). По вводу цифры вручную в поле и нажатии кнопки "поиск" выдает записи (тоже табличного типа).
нужно чтобы программа (моя), по oncklik на форме, подключила бд которая есть,вошла на сайт, ввела в поле "ххх" данные с бд (поле id), считала после каждого ввода полученую таблицу и записала эти данные например в xml..
в чем проблема - немогу понять как организовать автоматический ввод id на сайт..
и подскажите пожалста по опыту, насколько это реально и правильно. просто мне каж перебор данных из бд автоматом - может быть или долгим или неправильным..или ваще ip забанят.. (хотя разрешение на закачку и тд все есть)
да кстати, я бы погуглил и почитал учебники но время поджимает..к понедельнику нужно сдать проект..
заранее спасибо..

Последний раз редактировалось groomok, 03.09.2010 в 15:09.
Ответить с цитированием
  #2  
Старый 03.09.2010, 15:18
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

Кстати еще 1 вопрос, оьясните пожлста суть кода..
Код:
1
2
3
4
5
PostData:=TStringList.Create;
    PostData.Clear;
    PostData.Add('login=user');
    PostData.Add('pass=pas');
    htmlcode:=IdHTTP1.Get('http://qiq.ru/');

postdata в скобках - login - имя поля логина сайта? pass - соотв - имя поля пароль? или в скобках нужно по другому как то писать?
вместо usera - мое имя на сайте,а вместо pas - мой пароль?
простите за глупые вопросы - просто хочу в этом разобраться!
Ответить с цитированием
  #3  
Старый 03.09.2010, 16:05
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Цитата:
Сообщение от groomok
Кстати еще 1 вопрос, оьясните пожлста суть кода..
Код:
1
2
3
4
5
PostData:=TStringList.Create;
    PostData.Clear;
    PostData.Add('login=user');
    PostData.Add('pass=pas');
    htmlcode:=IdHTTP1.Get('http://qiq.ru/');
если ты этот код выцарапал с какого то исходника то ты прав. Скорей всего нужно записывать:
PHP код:
PostData.Add('login=Мой логин');
    
PostData.Add('pass=мой пароль'); 

Насчет первого вопроса. Если страницы скриптовые то наверное лутче всего использовать WebBrowser (вкладка интернет). Информации про этот компонент довольно много. Загрузиш страницу, с помощью Веб браузера введешь данные (програмно) и загрузишь страницу поиска. Парсить страницу результата можно в том же веб браузере или парсить полученый НТМЛ код с помощью регулярных выражений (я бы выбрал первое ). полученные данные добавить в бд думаю не составит труда.
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #4  
Старый 03.09.2010, 16:18
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

спасиб огромное за подсказку веббраузера! уже начал находить нужные вещи=)))
по поводу 2 вопроса:
я пытался зайти на сайт qiq под своим логином через прогу.. у мя не получалось..
я после post.add закидывал в переменную хтмл код (который должен был быть после авторизации),и в коде видно что авторизации не было..или я что то напутал, или не понял..

UPD
Все спасибо, залогинился и понял ошибку..код страницы внимательно перечитал и к htmlcode:=IdHTTP1.Get('http://qiq.ru/'); надо было дописать.?action=login итого работающая строка - htmlcode:=IdHTTP1.Get('http://qiq.ru/?action=login').. теперь понял что да как!=)))

Последний раз редактировалось groomok, 03.09.2010 в 16:53.
Ответить с цитированием
  #5  
Старый 03.09.2010, 16:35
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Цитата:
Сообщение от groomok
спасиб огромное за подсказку веббраузера! уже начал находить нужные вещи=)))
по поводу 2 вопроса:
я пытался зайти на сайт qiq под своим логином через прогу.. у мя не получалось..
я после post.add закидывал в переменную хтмл код (который должен был быть после авторизации),и в коде видно что авторизации не было..или я что то напутал, или не понял..
скорей всего ты что-то не понял. Посмотри ище раз код который ты использовал. если есть возможность выложи на форум.
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #6  
Старый 06.09.2010, 13:08
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

Если не сложно можно еще вопрос?
Может кто поможет..
вот сайт: http://service.nalog.ru:8080/uwsfind.do
вот огрн: 1077746718070

табличка, которая появляется с данными после поиска.. как ее закачать в файл? код html страницы данны таблички не содержит..
заранее спс
Ответить с цитированием
  #7  
Старый 06.09.2010, 13:40
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

тут надо юзать indy client-->idhttp (кидай на форму)
а потом:
Код:
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var s:TStringList;
begin
s:=TStringList.Create;
s.Clear;
s.Add('og=1077746718070');
memo1.text:=Utf8ToAnsi(IdHTTP1.Post('http://service.nalog.ru:8080/uwsfind.do',s));
s.Free;
end;
и в мемо будет текст нужной тебе страницы, вот его и парси
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.

Последний раз редактировалось friz, 06.09.2010 в 13:46.
Ответить с цитированием
  #8  
Старый 06.09.2010, 13:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Поскольку вы активно работаете с исходным кодом htm я вам советую поставить SRWire Iron. Там есть очень хорошая фишка - просмотр кода элемента. Там будет вся информация по элементам страницы.
А что касается:
Цитата:
табличка, которая появляется с данными после поиска.. как ее закачать в файл? код html страницы данны таблички не содержит..

это не так, страничка содержит, вот только сохранение этого элемента видимо запрещено, вот вы его и не получаете в сохраненном файле.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 06.09.2010, 13:54
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
это не так, страничка содержит, вот только сохранение этого элемента видимо запрещено, вот вы его и не получаете в сохраненном файле.

а не подскажите как мне получить этот элемент в сохр виде?=)

Цитата:
я вам советую поставить SRWire Iron

я через хром панель разработчика наблюдал как там после события клик по кнопке поиск - появляются теги table. вот тока там они и появляются.. а мне их сохранить нужно..
Ответить с цитированием
  #10  
Старый 06.09.2010, 14:48
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

делай как я написал и будет все как надо!
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #11  
Старый 06.09.2010, 15:08
Аватар для Моклев
Моклев Моклев вне форума
Новичок
 
Регистрация: 27.02.2009
Адрес: Лен. обл., г. Коммунар
Сообщения: 53
Версия Delphi: 7 и 2010
Репутация: 16
По умолчанию

Никакой там защиты нет, просто кидаешь на форму IdHTTP,Memo,Button и пишешь:

Код:
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
var s: TStringList;
begin
s:=TStringList.Create;
s.Add('og=1077746718070');
Memo1.Text:=UTF8ToANSI(IdHTTP1.Post('http://service.nalog.ru:8080/uwsfind.do',s));
s.Free;
end;
(как собственно и было уже написано)

в Memo у тебя теперь:

...

<table id="uwsdata">
<thead><tr>
<th>Полное наименование юридического лица</th>
<th>ОГРН</th>
<th title="Р13001 – Заявление о государственной регистрации изменений, вносимых в учредительные документы юридического лица
Р14001 – Заявление о внесении в Единый государственный реестр юридических лиц изменений в сведения о юридическом лице, не связанных с внесением изменений в учредительные документы">Вид изменений</th>
<th>Дата представления документов</th><th>Входящий номер</th>
<th>Наименование налогового органа</th>
</tr></thead>
<tbody>

<tr><td>Общество с ограниченной ответственностью "ПЕРВАЯ РЕКРУТИНГОВАЯ КОМПАНИЯ"</td><td>1077746718070</td><td>Вносимые в сведения реестра (форма № Р14001) в части: учредителей-физических лиц</td><td>06.02.2009</td><td>36875А</td><td>Межрайонная инспекция ФНС России №46 по г.Москве</td></tr>

</tbody>
</table>

...

</div>
<div id="stat"><div><a href="stat.do?uws=1" target="_blank">Статистика доступа</a></div>Copyright © 2006-10 ФНС России</div>
<div id="bottom"></div>
</body>
</html>

просто по заголовкам в таблице ищещ этот кусок html и уже фильтруешь его
Ответить с цитированием
  #12  
Старый 06.09.2010, 15:12
groomok groomok вне форума
Прохожий
 
Регистрация: 03.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо большое. Пока что получается=)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025