Автор | Сообщение |
|
| |
Пост N: 65
Зарегистрирован: 03.12.08
|
|
Отправлено: 24.10.12 15:55. Заголовок: Работа с HTML(Сайты в Интернет)
Друзья , подскажите в каком направлении рыть ... Есть сайт в интернете . Там поле для ввода строки поиска . .... Вводим строку . Сайт выдаёт (если найдёт у себя в базе) какую-то информацию в виде HTML-странички .... Задача такая : Программа на Harbour должна делать запрос на сайт и полученную информацию отображать в своём окне . При этом нужно кой-чего из этой информации убрать или заменить некоторые слова ( сайт буржуйский ) . Хочу прилепить как-бы On-Line поиск .... но чтоб данные брать с чужого сайта .... Какие будут мысли ? Или не связываться с такой задачей ?
|
|
|
Новых ответов нет
, стр:
1
2
3
All
[см. все]
|
|
|
| |
Пост N: 292
Зарегистрирован: 16.12.08
|
|
Отправлено: 02.06.14 12:42. Заголовок: Softlog86 пишет: Е..
Softlog86 пишет: цитата: | Есть ошибки и недостаточность кода : |
| Разобрались? Или объяснить более детально?
|
|
|
|
| |
Пост N: 147
Зарегистрирован: 03.12.08
|
|
Отправлено: 02.06.14 16:57. Заголовок: В принципе разобралс..
В принципе разобрался . Но есть ещё вопросы .Пока синтаксис не ложится в голову :) Не знаю как из таблицы <table вытащить данные по конкретным столбцам (3 и 4 колонка ) <h3>Vэsledek hledбnн pro шetмzec - CA1035IR </h3> <table style='margin-top:2px;'> <--------- НАША ТАБЛИЦА <tbody> <th>Nalezenй инslo <th>Firma <th>Nalezenб polo_ka <th>Dodavatel <th>Nбzev polo_ky <th>MC <th>MC + Dph <tr> <td>CA1035IR <td>HC-PARTS <td style='background:PaleGreen;'><a href='polozka.php?id_polozky=693443'>CA1035IR</a> <---- Это нам нужно то есть 3 и 4 колонка <td style='background:PaleGreen;'>HC-PARTS <---- И это нам нужно <td style='background:PaleGreen;'>alternбtor <td style='background:PaleGreen;' align=right>6 622,00 <td style='background:PaleGreen;' align=right>8 013,00 <tr> <td>CA1035IR <td>HELLA <td style='background:PaleGreen;'><a href='polozka.php?id_polozky=2418964'>860559</a> <---- Это нам нужно то есть 3 и 4 колонка <td style='background:PaleGreen;'>PRESTOLITE ELECTRIC <---- И это нам нужно <td style='background:PaleGreen;'>alternбtor <td style='background:PaleGreen;' align=right>0,00 <td style='background:PaleGreen;' align=right>0,00 <tr> <td>CA1035IR <td>HELLA <td style='background:PaleGreen;'><a href='polozka.php?id_polozky=1393149'>437442</a> <---- Это нам нужно то есть 3 и 4 колонка <td style='background:PaleGreen;'>VALEO <---- И это нам нужно <td style='background:PaleGreen;'>alternбtor <td style='background:PaleGreen;' align=right>20 445,00 <td style='background:PaleGreen;' align=right>24 738,00 .....................................
|
|
|
|
| |
Пост N: 293
Зарегистрирован: 16.12.08
|
|
Отправлено: 02.06.14 18:40. Заголовок: Softlog86 пишет: В ..
Softlog86 пишет: цитата: | В принципе разобрался . Но есть ещё вопросы .Пока синтаксис не ложится в голову :) Не знаю как из таблицы <table вытащить данные по конкретным столбцам (3 и 4 колонка ) |
| Да там нет ничего сложного. Заполняем масивы объектов и проходим по массиву, берём объект и используя его методы достаём данные. Если Вы сами формируете html файл то лучше его наполнить, например добавить атрибуты : <td class="" id=""></td> чтобы можна их было как-то отличить. Если такое невозможно, ну тогда : 1. Мы нашли свою таблицую 2. Считываем все <tr> в масив, проходим по каждому <tr> : FOR EACH otrNode IN oNodeTable:trS 3. Считываем все <td> для конкретной <tr> в масив FOR EACH otdNode IN otrNode:tdS 4. проходим по массиву <td> . Если не можем отличить столбцы по уникальным атрибутам , тогда проще счётчик сделать. Когда счётчик будет 3 и 4 данные выбираем. В случае 3 столбца нужно опять считать масив тегов <a> и вытянуть атрибут href. NEXT NEXT
|
|
|
|
| |
Пост N: 148
Зарегистрирован: 03.12.08
|
|
Отправлено: 03.06.14 10:50. Заголовок: Тяжко пока писать ....
Тяжко пока писать .... ошибаюсь часто , особо не зная свойств объектов :(
|
|
|
|
| |
Пост N: 234
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.05.15 02:21. Заголовок: как добыть строку ..
как добыть строку что указана в img src= ??? Вот эта часть в тексте HTML страницы : 1 <td align=center><img src='foto/123.jpg'> 2 <td align=left><a href='polozka.php?id_polozky=3045032'><nobr>132216</nobr></a> :href - (строка 2 ) то есть ссылки получать умею Как добраться к <img src= , то есть получить его значение (foto/123.jpg) ?? onode:src или onode:img (по аналогии с :href) - не проодит - пустые значения выдаёт
|
|
|
|
| |
Пост N: 316
Зарегистрирован: 17.06.10
|
|
Отправлено: 10.05.15 03:23. Заголовок: Если сайт идет на IE..
Если сайт идет на IE, то можно 1. открыть IE как ActiveX и встроить в свое окно 2. средствами DOM открываем этот сайт и мониторим его(по таймеру например) Ежели под IE не идет делаем тоже самое напр. на JS Или чего-то другое надо ?
|
|
|
|
| |
Пост N: 235
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.05.15 11:47. Заголовок: Это нужно средствами..
Это нужно средствами Harbour + MiniGui cделать . Разобрать полученную страницу .... Loadhtml.prg как пример .
|
|
|
|
| |
Пост N: 132
Зарегистрирован: 21.04.13
|
|
Отправлено: 10.05.15 15:31. Заголовок: <img src='foto/123.jpg'>
<img src='foto/123.jpg'> 1) Может быть так ? oDataset := oDoc1:findfirst( "img","src",@cValue,@cData) 2) В исходнике документа сделать замену 'foto/' на 'foto-' после определения значений - обратную замену ( м.б. проблема в символе / )
|
|
|
|
| |
Пост N: 326
Зарегистрирован: 16.12.08
|
|
Отправлено: 10.05.15 19:06. Заголовок: подключаем hbtip. к..
подключаем hbtip. код: LOCAL otdNode1, oNode, oImg_1 LOCAL cImage_path .... FOR EACH otdNode1 IN oNode:tdS FOR EACH oImg_1 IN otdNode1:imgS ...... cImage_path := oImg_1:getAttribute( "src" ) ...... NEXT NEXT
|
|
|
|
| |
Пост N: 227
Зарегистрирован: 05.10.06
|
|
Отправлено: 05.10.19 22:39. Заголовок: Как правильно составить запрос к https ?
Соединяюсь по 443(https) порту, использую синтаксис запроса HTTP, сервер возвращает ответ: цитата: | HTTP/1.1 400 Bad Request Server: nginx Date: Sat, 05 Oct 2019 19:34:42 GMT Content-Type: text/html Content-Length: 150 Connection: close <html> <head><title>400 Bad Request</title></head> .... |
| Вероятно требуется как то подключать сертификат ? Какой формат запроса https ?
|
|
|
|
| |
Пост N: 231
Зарегистрирован: 05.10.06
|
|
Отправлено: 09.10.19 16:41. Заголовок: Неужели никто с http..
Неужели никто с https не работает ? Сейчас большинство сайтов переведены на этот протокол... может есть где примеры глянуть ?
|
|
|
|
|
| |
Пост N: 7106
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.10.19 17:10. Заголовок: MIKHAIL пишет: Неу..
MIKHAIL пишет: цитата: | Неужели никто с https не работает ? |
| Погугли Harbour + Https
|
|
|
|
| постоянный участник
|
Пост N: 6472
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.10.19 17:18. Заголовок: MIKHAIL пишет: Неуж..
MIKHAIL пишет: цитата: | Неужели никто с https не работает ? |
| Попробуй поиск в инете - harbour + https Вот здесь смотри - http://www.kresin.ru/hrbfaq_3.html#Doc13_15 // Это 2-й поток Function GetData( lEnd ) Local nCount := 0, hSocket, cUrl, cServer, cBuf, aRes cServer := "clipper.borda.ru" cURL := "GET http://" + cServer + "/ HTTP/1.1" +Chr(13)+Chr(10) cURL += "Host: " + cServer + Chr(13)+Chr(10) cURL += "User-Agent: test_util"+Chr(13)+Chr(10) cUrl += Chr(13)+Chr(10) А по моему вообще очень трудно работать с https через Harbour. Судя по реакции на форуме - здесь таких умельцев нет.
|
|
|
|
| |
Пост N: 232
Зарегистрирован: 05.10.06
|
|
Отправлено: 09.10.19 18:34. Заголовок: Andrey я так и рабо..
Andrey я так и работаю с http, а вот https не пашет, выше ответ сервера приводил. Я полагаю требуется подключить ssl сертификат к запросу. А вот примеров не найти что то...
|
|
|
|
| постоянный участник
|
Пост N: 6473
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.10.19 19:57. Заголовок: MIKHAIL пишет: Я по..
MIKHAIL пишет: цитата: | Я полагаю требуется подключить ssl сертификат к запросу. |
| У себя в проге обновление качаю с сайта через внешнюю программу на C#, соединяюсь по https ! Прогу писал не я. Подключить сертификат в Харборе даже и не знаю как. Наверное очень трудоёмко это...
|
|
|
|
| |
Пост N: 233
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.10.19 07:02. Заголовок: Andrey пишет: У себ..
Andrey пишет: цитата: | У себя в проге обновление качаю с сайта через внешнюю программу на C#, соединяюсь по https ! |
| Ну вот я так же извратился, только через промежуточный сервер, который принимает http запрос, далее скипт на php получает данные с нужного https ресурса... Но все же хочется без костылей...
|
|
|
|
| постоянный участник
|
Пост N: 1562
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.10.19 09:16. Заголовок: В сырцах харбора пос..
В сырцах харбора посмотрите contrib\hbssl. Там в папке tests есть примеры.
|
|
|
|
| |
Пост N: 7108
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.19 09:28. Заголовок: PSP пишет: В сырцах..
PSP пишет: цитата: | В сырцах харбора посмотрите contrib\hbssl. Там в папке tests есть примеры. |
| с языка снял PS Hbcurl умеет по Https
|
|
|
|
| |
Пост N: 234
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.10.19 09:31. Заголовок: PSP пишет: В сырцах..
PSP пишет: цитата: | В сырцах харбора посмотрите contrib\hbssl. Там в папке tests есть примеры. |
|
Спасибо, как раз уже посмотрел, все заработало, в сокращенном виде выглядит так цитата: | #require "hbssl" #define CRLF Chr( 13 ) + Chr( 10 ) PROCEDURE Main() LOCAL ssl_ctx LOCAL ssl LOCAL socket LOCAL buffer LOCAL tmp hb_inetInit() socket := hb_inetCreate() ? hb_inetTimeout( socket, 2500 ) ? hb_inetConnect( "www.fortify.net", 443, socket ) ? hb_inetErrorCode( socket ) SSL_init() ? "SSL_CTX_NEW", ssl_ctx := SSL_CTX_new() ? "SSL_NEW", ssl := SSL_new( ssl_ctx ) ? "INET FD", hb_inetFD( socket ) ? "SSL_SET_FD", SSL_set_fd( ssl, hb_inetFD( socket ) ) ? "SSL_CONNECT", tmp := SSL_connect( ssl ) ? "SSL_GET_ERROR", SSL_get_error( ssl, tmp ) ? "SSL_WRITE", tmp := SSL_write( ssl, "GET / http/1.1" + CRLF + "Host: " + "www.fortify.net" + CRLF + CRLF ) ? "SSL_GET_ERROR", SSL_get_error( ssl, tmp ) buffer := Space( 1024 ) ? "SSL_READ", tmp := SSL_read( ssl, @buffer ) ? "SSL_GET_ERROR", SSL_get_error( ssl, tmp ) ? buffer ? hb_inetClose( socket ) RETURN |
|
|
|
|
|
| постоянный участник
|
Пост N: 1563
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.10.19 09:38. Заголовок: Dima пишет: с языка..
Dima пишет: Ну, прости)) MIKHAIL пишет: Не за что)
|
|
|
Новых ответов нет
, стр:
1
2
3
All
[см. все]
|
|