|
Парсинг Html | ☑ | ||
---|---|---|---|---|
0
Not1C
18.05.16
✎
12:14
|
Добрый день. Пару лет выгружал курсы валют с oanda.com. Но потом у них что-то изменилось и старая схема перестала работать. Решил нужную информацию вытягивать из html
Сейчас нужно вытянуть кросс-курсы из этой таблицы https://www.oanda.com/currency/table?date=2016&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1 Пытаюсь сохранить html файл, но получаю лишь заголовки Соединение=Новый HTTPСоединение("oanda.com"); ИмяВременногоФайла=ПолучитьИмяВременногоФайла("tmp"); Соединение.Получить("/currency/table?date=201605&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); |
|||
1
Not1C
18.05.16
✎
12:16
|
<html>
<head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> |
|||
2
Звездец
18.05.16
✎
12:16
|
открыть типовую и посмотреть как получают официальный курс валют. Зачем изобретать велосипед, чем этот непонятный сайт лучше?
|
|||
3
Not1C
18.05.16
✎
12:17
|
если сохранять html файл curl'ом, то все ок
|
|||
4
Широкий
18.05.16
✎
12:17
|
||||
5
Not1C
18.05.16
✎
12:18
|
(2) оф. курс нам не подходит
(4) вот эта схема перестала работать |
|||
6
Not1C
18.05.16
✎
12:19
|
Вопрос сейчас,почему 1С не сохраняет полностью html файл
|
|||
7
Локи-13
18.05.16
✎
12:39
|
(6) а ты в курсе что на сайте https ?
|
|||
8
Gary417
18.05.16
✎
12:47
|
(6) а вы посмотрите что такое 301 Moved Permanently и остальной заголовок подробно
|
|||
9
Not1C
18.05.16
✎
12:50
|
(7) В курсе. Для https есть разница в коде? Где искать пример кода?
|
|||
10
Gary417
18.05.16
✎
12:51
|
блин вот я могу понять когда простой юзер завёт админа с квадратными глазами "ой всё сломалось, я копировал файл а тут ошибка_кровькишкиппц_..подходишь висит окно "вы уверены что хотите скопировать? данет"
но блин когда программер делает интерфейс к какомуто сервису, и сервис буквально прямым текстом возвращает ответ "вот теперь я доступен по такому адресу блаблабла"... и программер бежит спрашивать "а чёйто не работает"... просто руки опускаются |
|||
11
Not1C
18.05.16
✎
12:51
|
HTTPСоединение.Защищенное
|
|||
12
Not1C
18.05.16
✎
12:53
|
(10) по моему нику можно понять,что я не программист 1С
|
|||
13
Широкий
18.05.16
✎
12:54
|
Если у тебя обработка из (4)
HTTP=Новый HTTPСоединение(СерверИсточник,,,,,Истина); |
|||
14
Not1C
18.05.16
✎
12:56
|
там тип не булево
|
|||
15
Gary417
18.05.16
✎
12:56
|
(12) "я не настоящий сварщик" :)
а чтобы знать как http работает не нужно быть программистом 1С |
|||
16
Not1C
18.05.16
✎
12:58
|
"я не сварщик" и "я не настоящий сварщик"
Найди отличие. Спасибо за помощь |
|||
17
Локи-13
18.05.16
✎
12:59
|
(9) в синтакс помощнике конечно!
ssl = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows( СпособВыбораСертификатаWindows.Выбирать), Новый СертификатыУдостоверяющихЦентровWindows()); httpsconn = Новый HTTPСоединение( "hostname",,,,, 5, // таймаут в секундах ssl // защищенное HTTPS соединение |
|||
18
Not1C
18.05.16
✎
13:00
|
Ошибка работы с Интернет: Удаленный узел не прошел проверку
ssl1 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто), Новый СертификатыУдостоверяющихЦентровWindows()); Соединение=Новый HTTPСоединение("oanda.com",,,,,,ssl1); ИмяВременногоФайла=ПолучитьИмяВременногоФайла("tmp"); Соединение.Получить("/currency/table?date=201605&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); |
|||
19
Not1C
18.05.16
✎
13:01
|
нужен другой сертификат, видимо его нужно будет как-то сохранить и подсунуть 1с
|
|||
20
Локи-13
18.05.16
✎
13:01
|
(18) можно еще так
ssl4 = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено ); |
|||
21
Not1C
18.05.16
✎
13:03
|
а вот теперь файл не отдает
{Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Получить) Соединение.Получить("/currency/table?date=201605&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); по причине: Файл не обнаружен '/currency/table?date=201605&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1' по причине: Ошибка работы с Интернет: ресурс не найден (404). <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>File Not Found | OANDA Australia</title><script type="text/javascript"><!-- // Inlined /jslib/perf/log_start_time.js window.start_time=new Date(); //--> </script><script type="text/javascript" src="/jslib/jquery/jquery-1.10.2.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="description" content=""><meta name="keywords" content="found,page,OANDA,fxTrade,Account,Services,were,date,link,Home,file,File,your,Forex,Trading,Business,FXGlobalTransfer,again,Lost,access,Find,once,Travelers,Trader,Current,Rate,Cross,FXCheatsheet,Table,Your,Open,Login,FXDaily,FXHistory,trying,FXManager,Training,Spreads,Currency,FXConverter,Tools,FXGame,please,likely,This,looking,because,typed,favorite,bookmark,reason,whatev по причине: Ошибка работы с Интернет: ресурс не найден (404) |
|||
22
Not1C
18.05.16
✎
13:04
|
этот ресурс есть,может по ссылке перейти
|
|||
23
Широкий
18.05.16
✎
13:05
|
(14) Т.е. ты проверил или наперед знаешь?
|
|||
24
drcrasher
18.05.16
✎
13:05
|
(1) если оно возвращает 301, то нужно смотреть по адресу, куда оно собственно 301:
HTTPОтвет (HTTPResponse) Свойства: Заголовки (Headers) = нужно смотреть сюда КодСостояния (StatusCode) = 301 |
|||
25
Not1C
18.05.16
✎
13:05
|
||||
26
Not1C
18.05.16
✎
13:12
|
Подсунул ему сертификат,который экспортировал в файл
ssl2 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровФайл("C:/1/ssl306058.cloudflaressl.com")); Соединение=Новый HTTPСоединение("oanda.com",,,,,,ssl2); {Форма.Форма.Форма(16)}: Ошибка при вызове метода контекста (Получить) Соединение.Получить("/currency/table?date=2016&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); по причине: Ошибка работы с Интернет: Удаленный узел не прошел проверку |
|||
27
Широкий
18.05.16
✎
13:14
|
(26) Еще раз, если ты используешь обработку то смотри (13)
|
|||
28
Not1C
18.05.16
✎
13:18
|
(27) Я вроде бы уже писал,что у последнего параметра другой тип, не булево
|
|||
29
Широкий
18.05.16
✎
13:20
|
(28) А я тебя написал - ты пробовал или нет?
|
|||
30
Not1C
18.05.16
✎
13:24
|
пробовал,ошибка
|
|||
31
Not1C
18.05.16
✎
13:27
|
не много не так, но все равно ошибка
{Форма.Форма.Форма(17)}: Ошибка при вызове метода контекста (Получить) Соединение.Получить("/currency/table?date=2016&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); по причине: Ошибка работы с Интернет: Удаленный узел не прошел проверку ssl1 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто), Новый СертификатыУдостоверяющихЦентровWindows()); ssl4 = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено ); ssl2 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровФайл("C:/1/ssl306058.cloudflaressl.com")); СерверИсточник = "oanda.com"; //Соединение=Новый HTTPСоединение(СерверИсточник,,,,,,ssl2); Соединение=Новый HTTPСоединение(СерверИсточник,,,,,Истина); ИмяВременногоФайла=ПолучитьИмяВременногоФайла("tmp"); Соединение.Получить("/currency/table?date=2016&date_fmt=us&exch=EUR&sel_list=CZK_PLN_RUB_UAH&value=1&format=HTML&redirected=1", ИмяВременногоФайла); |
|||
32
Pistol
18.05.16
✎
13:33
|
Как у вас там в 1С все сложно...
КопироватьФайл("https://www.oanda.com/currency/table?date=05/18/16&date_fmt=normal&exch=ADF&sel_list=CAD&value=1&format=CSV&redirected=1", "D:\123.txt"); |
|||
33
Not1C
18.05.16
✎
13:38
|
(32) это помогло,спасибо
|
|||
34
Широкий
18.05.16
✎
13:38
|
(31) Слепой что ли? Тебе ошибку на совсем другое выдает
|
|||
35
Not1C
18.05.16
✎
13:39
|
(34) Может и слепой. Грубить зачем?
|
|||
36
Широкий
18.05.16
✎
13:40
|
(35) Да потому что ты сварщик.
Заголовки не передаешь - вот и ругается |
|||
37
Not1C
18.05.16
✎
13:40
|
Спасибо всем за помощь
|
|||
38
Not1C
18.05.16
✎
13:41
|
сами себе противоречите ) то слепой,то свварщик
Где моя ошибка? |
|||
39
Not1C
18.05.16
✎
13:44
|
"Заголовки не передаешь - вот и ругается"
где я должен их передавать? уже посмотрел справку по двум HTTPСоединение() и Соединение.Получить() |
|||
40
Широкий
18.05.16
✎
13:44
|
(38) Не искушай меня, я тебе ведь целый список вывалю
|
|||
41
Широкий
18.05.16
✎
13:45
|
HTTP=Новый HTTPСоединение(СерверИсточник,,,,,Истина);
HTTP.Получить(СтрокаПараметраПолучения, ИмяВходящегоФайла, ЗаголовкиЗапроса); |
|||
42
Not1C
18.05.16
✎
13:48
|
Я специально проверил, прошу прощения
http://i79.fastpic.ru/big/2016/0518/31/a86c8b43c2cdf6fa0335768f07533831.jpg |
|||
43
Not1C
18.05.16
✎
13:50
|
||||
44
Широкий
18.05.16
✎
13:52
|
Это называется посмотрел подсказку.
Некоторые парметры остаются для совместимости. Вот у меня чудо: https://yadi.sk/i/TCL3J25rroU5b |
|||
45
Not1C
18.05.16
✎
13:53
|
я из этой обработки вытягивал код
|
|||
46
Not1C
18.05.16
✎
13:54
|
там для проверки можно вставить http запрос в брайзер. Вот он перестал работать. Примерно месяца полтора назад
|
|||
47
Широкий
18.05.16
✎
13:55
|
(46) ну вот смотри (44) - изменил одну строку и заработало
|
|||
48
Not1C
18.05.16
✎
13:57
|
||||
49
Serginio1
18.05.16
✎
14:05
|
||||
50
Pistol
18.05.16
✎
14:20
|
(49) Активист-евангелист, ты бы сравнил сложность решений из (49) и (32)
1С не знаем, так умных и модных технологий нагородим, эхэх... |
|||
51
Serginio1
18.05.16
✎
14:23
|
(50) В 49 все легко и непринужденно. А ля JQuery.
Если ты про Get C# это просто? то оно ничем от 32 не будет отличаться |
|||
52
Serginio1
18.05.16
✎
14:24
|
51+ Причем совсем не нужно сохранять в файл, а работать прямо с текстом. Причем можно прикрутить и GZip итд.
|
|||
53
Локи-13
18.05.16
✎
14:25
|
я решил проблему
у .com есть одна проблема, это наличие WWW ssl = Новый ЗащищенноеСоединениеOpenSSL(); Соединение = Новый HTTPСоединение("http://www.oanda.com",,,,, 5,// таймаут в секундах ssl// защищенное HTTPS соединение ); ИмяВременногоФайла=ПолучитьИмяВременногоФайла("html"); Запрос = Новый HTTPЗапрос; Запрос.АдресРесурса= "currency/table?date=05/18/16&date_fmt=normal&exch=ADF&sel_list=CAD&value=1&format=CSV&redirected=1"; ответ = Соединение.Получить(Запрос, ИмяВременногоФайла); |
|||
54
Pistol
18.05.16
✎
14:25
|
(52) Зачем?
|
|||
55
Локи-13
18.05.16
✎
14:27
|
(53) без http ессно, это миста хулиганит
|
|||
56
Serginio1
18.05.16
✎
14:30
|
(54) Если большие файлы таскать.
|
|||
57
Pistol
18.05.16
✎
14:31
|
(56) Вот кому они нужны, того и агитируй
|
|||
58
Serginio1
18.05.16
✎
14:34
|
(57) Я агитирую за простой и быстрый парсинг сайтов. При это с кучей примеров.
Только и всего. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |