Дек 18

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

вот что у нас должно получиться, далее скачиваем phpQuery (https: //storage.googleapis. com/google-code-archive-downloads/v2/code.google.com/phpquery/phpQuery-0.9.5.386-onefile.zip) и распаковываем в папку libs. В архиве будет один файл давайте для удобства переименуем его в phpQuery.php .  Далее опять же заходим на http: //www.banki. ru/products/currency/cash/moskva/ и смотрим код

здесь интересует вот этот элемент <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 require 'libs/phpQuery.php'; $doc = file_get_contents("http://www.banki.ru/products/currency/cash/moskva/"); $query = phpQuery::newDocument($doc); $usd_ru = $query->find('div.currency-table__large-text:eq(0)')->text();

echo "USD RU = ".$usd_ru."\n";

?>

 

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

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

 

автор: Admin

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

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