LISP. Как взять данные с интернет страницы?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как взять данные с интернет страницы?

LISP. Как взять данные с интернет страницы?

Ответ
Поиск в этой теме
Непрочитано 14.07.2011, 07:38 #1
LISP. Как взять данные с интернет страницы?
LastGraff
 
Томск
Регистрация: 13.07.2011
Сообщений: 81

Сложилась такая проблема:
Очень нужно связываться с локальным сервером (что не проблема), но связь надо осуществить через http, то есть как бы зайти через lisp на сайт на сервере, а сайт - вернет необходимые данные. Подскажите, как это можно реализовать?
Просмотров: 5670
 
Непрочитано 14.07.2011, 08:49
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Как вариант: лиспом запустить внешнюю программу, которая считает интересующие вас данные и запишет их, к примеру, в текстовый файл. Затем из лиспа можете обрабатывать этот файл.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 14.07.2011, 08:53
#3
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Этот вариант уже рассматривался, но все же хочется реализовать без подключения сторонних приложений, если это возможно...
LastGraff вне форума  
 
Непрочитано 14.07.2011, 10:45
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Как вариант попробовать объект XMLHTTPRequest
Что-то типа
Код:
[Выделить все]
(or
(setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP.6.0"))
(setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP"))
(setq XMLHTTP (vlax-create-object "Microsoft.XMLHTTP"))
)
(vlax-invoke XMLHTTP "open" "POST" "http://www.bla-bla-bla/updatever.asp" 1)
(vlax-invoke XMLHTTP "setRequestHeader" "Content-Type" "application/x-www-form-urlencoded")
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.07.2011 в 15:10.
VVA вне форума  
 
Автор темы   Непрочитано 14.07.2011, 11:12
#5
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Спасибо большое, только пока не могу сообразить как получить результат... Штудирую мануал по XMLHTTPRequest

Все, разобрался, почти...
Код:
[Выделить все]
     (vlax-invoke XMLHTTP "send" '12345)
    (setq q (vlax-get-property XMLHTTP "responseText"))
возвращает "! GET: Array\n(\n)\n! POST: Array\n(\n)\n! FILES: Array\n(\n)\n"

то есть POST не передал в запросе ничего. Как ни бьюсь - решить эту проблему не удается( может я где накосячил?

Последний раз редактировалось LastGraff, 14.07.2011 в 14:44.
LastGraff вне форума  
 
Непрочитано 14.07.2011, 15:05
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Посмотри еще эти программы: News & Weather Reader (требуется регистрация)

*** Добавлено

Цитата:
Все, разобрался, почти...
По ссылке выше в описании сказано
Цитата:
Кроме того, при POST обязателен заголовок Content-Type, содержащий кодировку. Это указание для сервера - как обрабатывать (раскодировать) пришедший запрос.
Код:
[Выделить все]
// Пример с POST
...
var params = 'name=' + encodeURIComponent(name) + '&surname=' + encodeURIComponent(surname)
xmlhttp.open("POST", '/script.html', true)
>>>>>>>!!!!!!!!!       mlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
...
xmlhttp.send(params)
Попробуй добавить выделенную красным строчку из #4
Вложения
Тип файла: lsp WeatherReaderV1-1.lsp (9.4 Кб, 69 просмотров)
Тип файла: lsp NewsReaderV1-1.lsp (8.5 Кб, 73 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.07.2011 в 15:13.
VVA вне форума  
 
Автор темы   Непрочитано 14.07.2011, 15:49
#7
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Цитата:
Сообщение от VVA Посмотреть сообщение
Попробуй добавить выделенную красным строчку из #4
я в #5 указал только то, что добавил к твоему... вот полный листинг этого куска
Код:
[Выделить все]
 (vl-load-com)    
(defun TakeInf(/ XMLHTTP)
  (or
    (setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP.6.0"))
    (setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP"))
    (setq XMLHTTP (vlax-create-object "Microsoft.XMLHTTP"))
  )
  (vlax-invoke XMLHTTP "open" "post" "http://192.168.0.4/index2.php" 0)
  (vlax-invoke XMLHTTP "setRequestHeader" "Content-Type" "application/x-www-form-urlencoded")
  (vlax-invoke XMLHTTP "send" '12345)
  (setq q (vlax-get-property XMLHTTP "responseText"))
  (vlax-invoke XMLHTTP "abort")
)
я использую синхронное соединение, в моем случае оно и проще и полностью удовлетворяет задаче

так вот этот код и возвращает в q
"! GET: Array\n(\n)\n! POST: Array\n(\n)\n! FILES: Array\n(\n)\n"

метод GET обрабатывает нормально, а вот с POSTом - напряженка
LastGraff вне форума  
 
Непрочитано 14.07.2011, 16:27
#8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


В примере по ссылке
Цитата:
xmlhttp.open("POST", '/script.html', true)
У тебя
Цитата:
(vlax-invoke XMLHTTP "open" "post" "http://192.168.0.4/index2.php" 0)
Попробуй вместо 0 1 или :vlax-true
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.07.2011, 07:23
#9
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


не помогает... по всем правилам - должно работать как часы, но не работает... Запрос идет пустой и ничего не получается сделать. Проверил и vlax-true и vlax-false - результат плачевен(

Справился, оказывается, что я неправильно формировал сам текст запроса (не учел его структуры) просто вместо '12345 должно было быть "f=12345" и все...

Теперь думаю над передачей файла (пока слабо представляю как это должно происходить)

Последний раз редактировалось LastGraff, 15.07.2011 в 08:15.
LastGraff вне форума  
 
Непрочитано 15.07.2011, 08:18
#10
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Может правильным является использование строки в качестве параметров запроса:
Код:
[Выделить все]
(vlax-invoke XMLHTTP "send" "name1=value1&name2=value2&...")
И еще, хотелось бы глянуть на файл index2.php

p.s.
Опоздал на три минуты
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 15.07.2011, 09:13
#11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Я когда-то с форума cadstudio.cz сохранил фрагмент кода, может поможет
Код:
[Выделить все]
(setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP.6.0"))
(setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP"))
(setq XMLHTTP (vlax-create-object "Microsoft.XMLHTTP"))
(vlax-invoke XMLHTTP "open" "POST" "http://www.cadstudio.cz/_sys_/updatever.asp" 1)
(vlax-invoke XMLHTTP "setRequestHeader" "Content-Type" "application/x-www-form-urlencoded")
(vlax-invoke XMLHTTP "send" (STRCAT "cv=" (RTOS XANADU-WEBUPDATE-VER 2 2) "&ver=" X__ENC2))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.07.2011, 13:56
#12
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Спасибо еще раз, разобрался как передавать файл. Если кому-то интересно - могу выложить листинг.
LastGraff вне форума  
 
Непрочитано 15.07.2011, 14:36
#13
Capiton


 
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
<phrase 1=


Конечно интересно! Заранее спасибо!
Capiton вне форума  
 
Автор темы   Непрочитано 15.07.2011, 15:41
#14
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Код:
[Выделить все]
 (vl-load-com)    

(defun TakeInf(/ XMLHTTP)
  (or
    (setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP.6.0"))
    (setq XMLHTTP (vlax-create-object "Msxml2.XMLHTTP"))
    (setq XMLHTTP (vlax-create-object "Microsoft.XMLHTTP"))
  )
  (vlax-invoke XMLHTTP "open" "post" "http://192.168.0.4/index2.php")
  (vlax-invoke XMLHTTP "setRequestHeader" "Content-Type" "multipart/form-data; boundary=1BEF0A57BE110FD467A")
  (vlax-invoke XMLHTTP "send" "\r\n--1BEF0A57BE110FD467A\r\nContent-Disposition: form-data; name='news_file'; filename='news.txt'\r\nContent-Type: application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n\r\nbla-bla-bla in news.txt\r\n--1BEF0A57BE110FD467A--\r\n")
  (setq q (vlax-get-property XMLHTTP "responseText"))
  (vlax-invoke XMLHTTP "abort")
)
LastGraff вне форума  
 
Непрочитано 15.07.2011, 19:33
#15
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


LastGraff,Если не сложно, выложи еще index2.php
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 17.07.2011, 08:07
#16
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Index2.php - просто возвращает содержимое из массивов GET POST и FILES
Код:
[Выделить все]
 <?php 
echo 'GET: ';
print_r($_GET);
echo 'POST: ';
print_r($_POST);
echo 'FILES: ';
print_r($_FILES);

Может кто подскажет еще, как преобразовать дробное в строку? Без потери точности? а то как-то хреново выходит... или, что еще лучше, список в строку, чтобы сразу список в файл записывать?

Последний раз редактировалось LastGraff, 17.07.2011 в 11:18.
LastGraff вне форума  
 
Непрочитано 17.07.2011, 13:29
1 | #17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от LastGraff Посмотреть сообщение
список в строку, чтобы сразу список в файл записывать?
Код:
[Выделить все]
vl-princ-to-string
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 17.07.2011, 15:26
#18
LastGraff


 
Регистрация: 13.07.2011
Томск
Сообщений: 81


Спасибо огромное, очень помогло
LastGraff вне форума  
 
Непрочитано 03.07.2024, 14:45
#19
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Подниму топик, ибо вопрос в русле этой тематики.

Можно ли программно в Автокаде получить из Интернета информацию о владельце участка по его кадастровому номеру?
Всё описанное в теме для меня ещё малопонятно, хотелось бы перед погружением узнать, возможно ли такое в принципе?


Появилась потребность заполнять ведомости правообладателей при проектировании наружных коммуникаций. Собрать с чертежа данные о кадастровых границах и номерах - не проблема. Но в таблицу нужно сводить наименование правообладателя и вид права, а этой информации на чертеже нет.
Может, кто знает какую-то обновляемую базу данных этих кадастровых дел по областям, в которой можно было бы покопаться программно, или же выдёргивать данные как-то с сайта Росреестра?

P.S.: Желательно на лиспе, но готов рассмотреть варианты.
skkkk вне форума  
 
Непрочитано 03.07.2024, 16:22
#20
Dinoxromniy


 
Регистрация: 14.09.2020
Санкт-Петербург
Сообщений: 395


Цитата:
Сообщение от skkkk Посмотреть сообщение
или же выдёргивать данные как-то с сайта Росреестра?
skkkk, уже года полтора этим не занимался, по тем реалиям - услуга получения выписки с сайта была вроде бы платной (оплачивался ключ доступа) https://rosreestr.gov.ru/wps/portal/...resent/ir_egrn и речь шла о том, чтобы убрать из выписок фамилии владельцев, чтобы пресечь деанонимизации владельцев. Довели это начинание до конца или нет - уже не застал. А вот то, что выписку иногда ждать нужно было по несколько дней, в памяти осталось (мы их по 20-30 штук могли заказывать), так что об онлайн доступе у меня пессимизм, если конечно не подкрутили там уже сайт.

Цитата:
Сообщение от skkkk Посмотреть сообщение
какую-то обновляемую базу данных этих кадастровых дел по областям, в которой можно было бы покопаться программно
Был сайт, где можно было делиться своими выписками, что давало баллы для скачивания чужих старых выписок (также можно было заплатить). Очевидным образом, актуальность такой выписки всегда под вопросом - может быть владелец уже сменился, но нового экземпляра никто не загрузил. Сайт точно не помню, вроде бы https://pbprog.ru/webservices/kv/ но сейчас он висит, поэтому не проверить.

Цитата:
Сообщение от skkkk Посмотреть сообщение
в Автокаде получить из Интернета информацию о владельце
Из отчета xml вытягивать инфу в эксель у меня получалось, там априори все структурировано, а вот инфа с сайта выдавалась в виде выписок, да еще через личный кабинет, особенно не разгонишься.
Возможно на https://pbprog.ru/ есть какое-нить решение, но у меня он сейчас висит.
Dinoxromniy вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как взять данные с интернет страницы?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19
Lisp и данные paha LISP 9 26.08.2004 14:49