Перейти к содержимому













Фотография
Нужна помощь

Как выпарсить нужное значение из html-страницы?



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 hoz

hoz

    Алень

  • Сливапер LVL 3
  • Сообщений: 1 032
  • Регистрация: 19.10.2014
  • Заработано: 220 руб.
Репутация: 11

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 01 Апрель 2017 - 20:04

 Я в вебе не силён. Но вот нужно в настольное приложение внедрить закачку котировок. Вот страницы курсов на текущую дату, например, центробанка http://cbr.ru/curren..._req=01.04.2017

Нужно все котировки спарсить и записать в связанный список.

По сути, вопрос такой, если тут есть такие умельцы... Как парсить выкачанную html-страницу? Имею ввиду, получить значение канкретного элемента таблицы.

Например, я вот кусок таблицы резанул:

                        <h2>Центральный банк Российской Федерации установил с 01.04.2017 следующие курсы иностранных валют к рублю Российской Федерации без обязательств Банка России покупать или продавать указанные валюты по данному курсу
                        </h2><table class="data"><tbody><tr><th>Цифр. код</th><th>Букв. код</th><th>Единиц</th><th>Валюта</th><th>Курс</th></tr>
                    <tr><td>036</td>
                        <td>AUD</td>
                        <td>1</td>
                        <td>Австралийский доллар</td>
                        <td>42,8490</td></tr>
                    <tr><td>944</td>
                        <td>AZN</td>
                        <td>1</td>
                        <td>Азербайджанский манат</td>
                        <td>32,6301</td></tr>
                    <tr><td>051</td>
                        <td>AMD</td>
                        <td>100</td>
                        <td>Армянских драмов</td>
                        <td>11,5741</td></tr>
                    <tr><td>933</td>
                        <td>BYN</td>
                        <td>1</td>
                        <td>Белорусский рубль</td>
                        <td>29,8935</td></tr>
                    <tr><td>975</td>
                        <td>BGN</td>
                        <td>1</td>

Имеем череду строк таблицы (table row т.е. tr). Как обратится к месту, например,  курса Армянских драмов ?

Чем вообще удобнее парсить?

Я смотрю в сторону Jsoup. Но опыта в парсинге нет, потому и спрашиваю. И. есс-но, хотелось бы увидеть пример использования.. Как искать необходимые места, т.е. цепляться нужные участки страницы. Спрашиваю, потому что, возможно, имеются более адекатные варианты решения этой задачи, ежели искать, например, строку:

                        <td>Белорусский рубль</td>

А потом спускаться на нужное количество строк вниз и перебираться по символьно в необхоимый участок кода, где значение котировки. Может как-то можно иначе? Ведь в вебе. есть вариант использования id-элементов, например. И возможно иные варианты похода.


  • 0

#2 akir

akir
  • Модератор
  • Сообщений: 1 328
  • Регистрация: 04.05.2014
  • Заработано: 104 руб.
Репутация: 755

Награды: 27

  
  
  
  
  
  
  
  

Отправлено 01 Апрель 2017 - 20:55

xpath html 

regex


  • 0

#3 Astap

Astap
  • Platinum
  • Сообщений: 250
  • Регистрация: 05.07.2014
  • Заработано: 95 руб.
Репутация: 170

Награды: 21

  
  
  
  
  
  
  
  

Отправлено 01 Апрель 2017 - 21:29

Какой язык ЯП нужен ?


  • 0

#4 hoz

hoz

    Алень

  • Сливапер LVL 3
  • Сообщений: 1 032
  • Регистрация: 19.10.2014
  • Заработано: 220 руб.
Репутация: 11

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 01 Апрель 2017 - 21:32

Какой язык ЯП нужен ?

Java


xpath html 

regex

А примерчик можно? Я и сам въеду, но сроки..

jsoup не катит тут разве?


  • 0

#5 akir

akir
  • Модератор
  • Сообщений: 1 328
  • Регистрация: 04.05.2014
  • Заработано: 104 руб.
Репутация: 755

Награды: 27

  
  
  
  
  
  
  
  

Отправлено 01 Апрель 2017 - 22:34

Java


А примерчик можно? Я и сам въеду, но сроки..

jsoup не катит тут разве?

 

Java не знаю.

Гуглить нужно в сторону xpath и regex,  мб и jsoup умеет.


  • 0

#6 kampprad

kampprad
  • Сливапер LVL 7
  • Сообщений: 252
  • Регистрация: 30.12.2014
  • Заработано: 29 руб.
Репутация: 1 202

Награды: 20

  
  
  
  
  
  
  
  

Отправлено 02 Апрель 2017 - 01:43

 

А регулярка (?<=Армянских\ драмов</td>)[\w\W]*?(?=</td>)  не?


  • 0

#7 hoz

hoz

    Алень

  • Сливапер LVL 3
  • Сообщений: 1 032
  • Регистрация: 19.10.2014
  • Заработано: 220 руб.
Репутация: 11

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 02 Апрель 2017 - 02:06

А регулярка (?<=Армянских\ драмов</td>)[\w\W]*?(?=</td>)  не?

Я с регулярками не дружу. Смотрю в эту сторону, но не работал с ними.

К тому же, мне нужно получить значение сследующей строки после той, которую я найду. Вот на чем я думаю. А найти строку я уже смог в принципе.


  • 0

#8 kampprad

kampprad
  • Сливапер LVL 7
  • Сообщений: 252
  • Регистрация: 30.12.2014
  • Заработано: 29 руб.
Репутация: 1 202

Награды: 20

  
  
  
  
  
  
  
  

Отправлено 02 Апрель 2017 - 02:27

Я с регулярками не дружу. Смотрю в эту сторону, но не работал с ними.

К тому же, мне нужно получить значение сследующей строки после той, которую я найду. Вот на чем я думаю. А найти строку я уже смог в принципе.

По моему нет тут проблем, если решение на Зенке устроит, напиши в личку, что именно надо, завтра попробую сделать. На демке тоже должно работать


  • 0

#9 hoz

hoz

    Алень

  • Сливапер LVL 3
  • Сообщений: 1 032
  • Регистрация: 19.10.2014
  • Заработано: 220 руб.
Репутация: 11

Награды: 22

  
  
  
  
  
  
  
  

Отправлено 02 Апрель 2017 - 10:46

Нет. Есть крупный проект. Сфера логистики. Вот всё это хозяйство нужно туда внедрять. Частично уже понял, но не совсем..((


  • 0

#10 Astap

Astap
  • Platinum
  • Сообщений: 250
  • Регистрация: 05.07.2014
  • Заработано: 95 руб.
Репутация: 170

Награды: 21

  
  
  
  
  
  
  
  

Отправлено 02 Апрель 2017 - 13:10

Java


А примерчик можно? Я и сам въеду, но сроки..

jsoup не катит тут разве?

Java не знаю. Напсиал на шарпе по синтаксису очень близки. используя HtmlAgilityPack. Можно и через регулярки

14a18be6ff84.gif

 

Проект https://www.sendspace.com/file/lxkwqc


  • 3



Похожие темы Collapse

  Название темы Форум Автор Статистика Последнее сообщение

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

×

Зарегистрируйся моментально!