Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 2
uas_web Сообщение 08/09/2012 12:52 Копия темы
Помогите разобраться с бд cms drupal  
Вообщем разрабатываю api связанное с сайтом сделанном на движке drupal, возникла проблема: не могу найти таблицу в базе данных которая содержит рейтинги комментариев и статей. Помогите пожалуйста кто сталкивался с этим или знает в какой таблице найти эту информацию.
uas_web Сообщение 20/04/2012 16:04 Копия темы
Создание парсера на php эти стили слишком расширяли блоги и они ломались, поэтому пока закомментил-->
Здравствуйте, я расскажу как можно легко создать парсер с помощью библиотеки phpQuery.

Перед началом работы необходимо скачать библиотеку phpQuery и подключить её к скрипту:

<?php

include(«phpQuery.php»);

?>

Теперь нам следует скачать исходный код сайта и создать новый экземпляр класса связанный с этим кодом.   Для получение кода страницы желательно применить функцию file_get_contents(), которая возвращает html в одной строке:

<?php

$html_code = file_get_contents(‘example.com’);

$document = phpQuery::newDocument($hbr);

?>

Теперь давайте представим, что страница example.com имеет html-код в таком виде:



<div class = «news»>

<img src = «logo.jpg» alt = «logo»>

Title News



<span>brief description[...]</span>

<a href = «example.com/news/1.html» target = «_blank»>Read more</a>

</div>



И нам требуется логотип, название, текст и ссылка на продолжение новости. Мы могли бы взять весь блок целиком и вставить на сайт, но вдруг он не подойдет под шаблон или будут не нужные элементы в блоке,  по этому мы будем парсить по частям.

Для начала мы выберем для работы нужный нам блок, в данном  случае это: <div class = «news»>.

<?php

$div_news = $document->find(«div.news»);

?>

Теперь благодаря методу find() мы записали в переменную код блока div с классом news.

Переменная предоставленная в виде массива, так как блоков с новостями может быть несколько мы будем использовать цикл foreach.   

Все дальнейшие действия я опишу в комментариях:

<?php

foreach($div_news as $div)

{

$pq = pq($div); // Это аналог $ в jQuery

//Теперь найдем тег с логотипом, будем искать не в коде всей страницы, а только блока новости:

$img = $pq -> find(«img»);

/*для вставки логотипа нам хватит знать ссылку на изображение

для этого узнаем атрибут src методом attr()*/

$img_src = pq($img);

$src = $img_src->attr(«src»);

//Если же ссылка на изображение имеет вид:

//image/logo.jpg , а не полный адрес тогда требуется добавить его к переменной:

//$src = «example.com».$src 

//Дальше узнаем заголовок новости, он находится в теге h4, текст парсим методом text()

$h4 = $pq->find(«h4″);

$title = pq($h4);

$title_news = $title->text();

//Также узнаем текст новости:

$span = $pq->find(«span»);

$text = pq($span);

$text_news = $text->text();

//Осталось узнать только ссылку на полную новость

//её получим из атрибута href тега <a>:

$a = $pq->find(«a»);

$adress = pq($a);

$url = $adress->attr(«href»);

//Получим текст ссылки:

$title_url = $adress->text();

//Строим ссылку:

$url_read_more = «<a href = ‘».$url.»‘>».$title_url.»</a>»;

//Мы закончили сбор данных, осталось только вставить их в шаблон, пример:

$template = «<div class = ‘my_news’>

».$title_news .»



<img src = ‘».$src.» ‘>

».$text_news.»

».$url_read_more.»

</div>»

}

?>  

Мы создали парсер в результате которого у нас есть переменная $template в которой содержится спарсенная  новость.

0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"