#1
Отправлено 02 Май 2014 - 12:10
Допустим есть карточка объекта недвижимости
И мне с нее надо выдернуть какие либо печатные данные а я имею только гиперссылку
То есть мне надо чтоб по моему действию или сохранению гиперссылки в таблица обработчик заходил на сайт и забирал данные
С какой стороны подступится, ? писать свои процедуры PHP JS и привязывать к доп действию, может кто-то делал что-то подобное
ПЫСЫ - карточки объктов все одинаковые и имеют одинаковую разметку
#2
Отправлено 02 Май 2014 - 14:07
поле ссылка - однострочное
поле данные - многострочное
Сделал вычисление
$data['данные'] = file_get_contents($line['ссылка']);
по сохранению поле заполняется 356 символами а дальше "ёк"
Это какое то ограничение или что ? даже первая строка в виде html данной ссылки длинее
#3
Отправлено 02 Май 2014 - 15:40
ManFree (02 Май 2014 - 14:07) писал:
поле ссылка - однострочное
поле данные - многострочное
Сделал вычисление
$data['данные'] = file_get_contents($line['ссылка']);
#4
Отправлено 02 Май 2014 - 17:54
Вся нужная мне инфа хранится между тегов <span> </span>
И скажем если в массив загнать все содержимое между этих тегов по странице, будет мне счастье
на phpquery пробую вот такой код но до конца пока не разобрался
require('./phpQuery.php');
$url = "http://,,,,,,";
$page_content = file_get_contents($url);
$html = phpQuery::newDocument($page_content);
$posts = $html->find('span#main > span.post');
foreach($posts as $post){
$post_link = pq($post)->find('<span> > </span>');
echo $post_link->text(); // заголовок поста
}
Сообщение отредактировал ManFree: 02 Май 2014 - 17:57
#5
Отправлено 02 Май 2014 - 18:13
require_once ("include/snoopy.class.php"); .... $url = $line['Ссылка на товар']; //Адрес страницы с товаром //Получаем содержимое страницы с помощью Snoopy() $snoopy = new Snoopy(); $open_link_snoopy = $snoopy -> fetch($url); $html = $snoopy -> results; phpQuery::newDocumentHTML($html);
Сообщение отредактировал wondertalik: 02 Май 2014 - 18:14
#6
Отправлено 02 Май 2014 - 18:47
require_once ("include/snoopy.class.php"); $url = $line['ссылка']; //Адрес страницы с товаром //Получаем содержимое страницы с помощью Snoopy() $snoopy = new Snoopy(); $open_link_snoopy = $snoopy -> fetch($url); $html = $snoopy -> results; $line['данные']=strlen($html); $s1 = strpos($html, "Расположение"); $line['Номер символа']=$s1;
странно вот что
Длина $line['данные']=strlen($html); при каждом сохранении разная 35800,35790,35700 - хотя может и не странно меняется же количество посетителей и т.д. и визиты
$s1 = strpos($html, "Расположение"); вождение строки не определяет уж не знаю почему
и если попытаться загнать $html в поле данные - получаются те же яйцы что и file_get_contents($url); 356 символов и все
Пытаюсь получить содержимое вот этой страницы
http://domchel.ru/re...ail/5816961.php
Сообщение отредактировал ManFree: 02 Май 2014 - 19:20
#7
Отправлено 02 Май 2014 - 21:26
с яндексом парсирует с майлом парсирует с другими сайтами тоже что с домчелом не так не понимаю
#8
Отправлено 03 Май 2014 - 07:12
ManFree (02 Май 2014 - 21:26) писал:
с яндексом парсирует с майлом парсирует с другими сайтами тоже что с домчелом не так не понимаю
В общем разобрался
Проблема в кодировке
добавил функцию преобразования кодировки
require_once ("include/snoopy.class.php"); $url = $line['ссылка']; //Адрес страницы с товаром //Получаем содержимое страницы с помощью Snoopy() $snoopy = new Snoopy(); //$open_link_snoopy = $snoopy -> fetch($url); $snoopy->fetch($url); $html = $snoopy -> results; //$line['данные']=iconv( "windows-1251", "utf-8", $html); $html=iconv( "windows-1251", "utf-8", $html);
#9
Отправлено 05 Май 2014 - 19:01
А это для чего ?
Сообщение отредактировал ManFree: 05 Май 2014 - 19:01
#11
Отправлено 06 Май 2014 - 12:47
wondertalik (05 Май 2014 - 20:07) писал:
Странно и без него работает
а с ним на ошибку вываливается ,что не так ?
phpQuery::newDocumentHTML($html);
С первой задачей я справился все ок! Но есть еще один момент, есть динамическая страница и есть куча чекбоксов для фильтрации контента, дак вот эти переключатели влияют на фильтр и отражаются в строке браузера в виде:
/#1.php%order=DateUpdate&dir=asc&PriceUnit=1&AreaUnit=1&expand=0&PriceUnit=1&Owner[]=0&Date=1&DateNew=1&WithPhoto=1
Но почему то парсер не считывает эту строку и парсирует страницу как будто этого ничего нет и есть только
http://domchel.ru/re...tial/secondary/
В чем может быть проблем может кто подскажет ?
Да кстати если посмотреть код страницы которая уже отфильтровала свой контент. в нем тоже нет того что нужно. Это меня в ступор ставит. Хотя если страницу сохранить на HDD файлом и открыть то там уже все есть)
Как так ?
Сообщение отредактировал ManFree: 06 Май 2014 - 12:59
#12
Отправлено 07 Май 2014 - 08:20
Спасибо всем за помощь
order=DateUpdate&dir=asc&PriceUnit=1&AreaUnit=1&expand=0&PriceUnit=1&Owner[]=0&Date=1&DateNew=1&WithPhoto=1
передал в виде параметров в сунпи
и сэмулировал браузер
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; $snoopy->referer = "http://google.com/"; $snoopy->cookies["SessionID"] = '238472834723489'; $snoopy->cookies["favoriteColor"] = "blue"; $snoopy->rawheaders["Pragma"] = "no-cache"; $submit_vars["order"] = "DateUpdate"; $submit_vars["dir"] = "asc"; $submit_vars["PriceUnit"] = "1"; $submit_vars["AreaUnit"] = "1"; $submit_vars["expand"] = "0"; $submit_vars["PriceUnit"] = "1"; $submit_vars["Owner[]"] = "0"; $submit_vars["Date"] = "1"; $submit_vars["DateNew"] = "1"; $submit_vars["WithPhoto"] = "1"; $snoopy->submit($submit_url,$submit_vars);
Сообщение отредактировал ManFree: 07 Май 2014 - 08:23
#13
Отправлено 18 Февраль 2015 - 15:26
$res = file_get_contents('https://api.vk.com/method/groups.getMembers?group_id=17157755'); echo $res; $resp = json_decode($res, true); var_dump($resp);Эхо пустое, вардамп - нулл. Сама ссылка в браузере все, что надо выводит.
Я охотно верю, что snoopy рулит, но все же это надстройка, в которую надо вникать, а file_get... мне например предельно понятен. Что с ним не так?
Переделал через снупи...
Сообщение отредактировал Riddick: 19 Февраль 2015 - 01:14
#14
Отправлено 24 Февраль 2015 - 12:33
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных