Дек 18

В прошлой статье я рассказал Вам как сделать простой парсер на PHP. Теперь давайте напишем тот же парсер но уже с phpQuery. Для начала давайте создадим папку для нашей библиотеки к примеру libs в папке с нашим проектом

вот что у нас должно получиться, далее скачиваем phpQuery(Ссылка) и распаковываем в папку libs. В архиве будет один файл давайте для удобства переименуем его в phpQuery.php .  Далее опять же заходим на Сайт  и смотрим код

здесь интересует вот этот элемент <div class=»currency-table__large-text»>59,28</div>.

В phpQuery все проще регулярные выражения составлять не нужно. Для того чтобы получить нужный нам в данном случае курс валют нам всего лишь надо написать вот такую строчку кода

$usd_ru = $query->find('div.currency-table__large-text')->text();

 

но так как похожих элементов у нас шесть а нам нужен только первый то нам надо дописать один из следующих фильтров :first или :eq(0), с помощью фильтра :first  мы можем получить только первый элемент а с помощью :eq() любой из шести, к примеру чтобы получить четвертый элемент нам нужно использовать фильтр :eq(3) так как отсчет начинается с нуля. Итак нужный нам код будет такой

$usd_ru = $query->find('div.currency-table__large-text:first ')->text();

 

или такой

$usd_ru = $query->find('div.currency-table__large-text:eq(0) ')->text();

 

кому как удобнее, а вот и весь код

<?php</span>

<span style="color: #0000ff;"> require 'libs/phpQuery.php';</span>

<span style="color: #0000ff;"> $doc = file_get_contents("http://www.banki.ru/products/currency/cash/moskva/");</span>

<span style="color: #0000ff;"> $query = phpQuery::newDocument($doc);</span>

<span style="color: #0000ff;"> $usd_ru = $query->find('div.currency-table__large-text:eq(0)')->text();</span>

<span style="color: #0000ff;"> echo "USD RU = ".$usd_ru."\n";</span>

<span style="color: #0000ff;">?>

как видим ничего сложного, запустим и проверим

все прекрасно работает.

 

автор: Admin

Оставьте свой отзыв

RSS
Follow by Email
Facebook
Google+
http://cl-box.ru/parser_s_phpquery
Twitter
SHARE
LinkedIn