On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 65
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 24.10.12 15:55. Заголовок: Работа с HTML(Сайты в Интернет)


Друзья , подскажите в каком направлении рыть ...
Есть сайт в интернете . Там поле для ввода строки поиска . .... Вводим строку . Сайт выдаёт (если найдёт у себя в базе) какую-то информацию в виде HTML-странички ....
Задача такая : Программа на Harbour должна делать запрос на сайт и полученную информацию отображать в своём окне . При этом нужно кой-чего из этой информации убрать или заменить некоторые слова ( сайт буржуйский ) . Хочу прилепить как-бы On-Line поиск .... но чтоб данные брать с чужого сайта ....
Какие будут мысли ? Или не связываться с такой задачей ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 47 , стр: 1 2 3 All [только новые]







Пост N: 292
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 02.06.14 12:42. Заголовок: Softlog86 пишет: Е..


Softlog86 пишет:

 цитата:

Есть ошибки и недостаточность кода :



Разобрались? Или объяснить более детально?



Спасибо: 0 
ПрофильЦитата Ответить



Пост 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

.....................................

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 148
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 03.06.14 10:50. Заголовок: Тяжко пока писать ....


Тяжко пока писать .... ошибаюсь часто , особо не зная свойств объектов :(

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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) - не проодит - пустые значения выдаёт


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 316
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 10.05.15 03:23. Заголовок: Если сайт идет на IE..


Если сайт идет на IE, то можно
1. открыть IE как ActiveX и встроить в свое окно
2. средствами DOM открываем этот сайт и мониторим его(по таймеру например)

Ежели под IE не идет делаем тоже самое напр. на JS

Или чего-то другое надо ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 235
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 10.05.15 11:47. Заголовок: Это нужно средствами..


Это нужно средствами Harbour + MiniGui cделать . Разобрать полученную страницу ....
Loadhtml.prg как пример .

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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-'
после определения значений - обратную замену ( м.б. проблема в символе / )

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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


Спасибо: 1 
ПрофильЦитата Ответить





Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 231
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 09.10.19 16:41. Заголовок: Неужели никто с http..


Неужели никто с https не работает ? Сейчас большинство сайтов переведены на этот протокол... может есть где примеры глянуть ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7106
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.10.19 17:10. Заголовок: MIKHAIL пишет: Неу..


MIKHAIL пишет:

 цитата:

Неужели никто с https не работает ?


Погугли
Harbour + Https

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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.
Судя по реакции на форуме - здесь таких умельцев нет.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 232
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 09.10.19 18:34. Заголовок: Andrey я так и рабо..


Andrey я так и работаю с http, а вот https не пашет, выше ответ сервера приводил. Я полагаю требуется подключить ssl сертификат к запросу. А вот примеров не найти что то...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6473
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.19 19:57. Заголовок: MIKHAIL пишет: Я по..


MIKHAIL пишет:

 цитата:
Я полагаю требуется подключить ssl сертификат к запросу.


У себя в проге обновление качаю с сайта через внешнюю программу на C#, соединяюсь по https !
Прогу писал не я.
Подключить сертификат в Харборе даже и не знаю как. Наверное очень трудоёмко это...


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 233
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 10.10.19 07:02. Заголовок: Andrey пишет: У себ..


Andrey пишет:

 цитата:
У себя в проге обновление качаю с сайта через внешнюю программу на C#, соединяюсь по https !


Ну вот я так же извратился, только через промежуточный сервер, который принимает http запрос, далее скипт на php получает данные с нужного https ресурса... Но все же хочется без костылей...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1562
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.10.19 09:16. Заголовок: В сырцах харбора пос..


В сырцах харбора посмотрите contrib\hbssl. Там в папке tests есть примеры.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7108
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.19 09:28. Заголовок: PSP пишет: В сырцах..


PSP пишет:

 цитата:
В сырцах харбора посмотрите contrib\hbssl. Там в папке tests есть примеры.


с языка снял

PS
Hbcurl умеет по Https

Спасибо: 0 
ПрофильЦитата Ответить





Пост 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




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1563
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.10.19 09:38. Заголовок: Dima пишет: с языка..


Dima пишет:

 цитата:
с языка снял


Ну, прости))
MIKHAIL пишет:

 цитата:
Спасибо


Не за что)

Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 47 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет