вопрос про Грабберов

Статус
В этой теме нельзя размещать новые ответы.

help40

Мастер
Регистрация
1 Окт 2006
Сообщения
252
Реакции
32
ну у меня есть сайт с которого хочу взят все инфо для юзеров
sait_com/view.php?id=xxxxx

по сколько я еще не могу написать гараббер , мой вопрос такой

могу ли я сначала "скопировать" все страници на мой комп и потом извлеч инфо (когда успею сделат граббер) ?
или думаете это глупая идея ?

скопировать в смысле:
0001.html
0002.html
.....
0xxx.html

будет ли мне труднее потом извлеч инфо или нет ?
просто как сказать, хочу разделит задача на 2 , сделать снчало то что могу , а потом копаться и думать как извлеч инфо в DB.

P.S. в раздел видел примерный код для простой граббер какойто , но там кажется слышком простой
например если у меня есть 5 <div> и мне нужна информация котороя в 3-тый , тогда что делаю , как нахожу его ... еще не ясно. Ранше пробовал тоже с Snoopy.class.php , но тоже не подходит посколько есть скритые данни которые мне нужни ...
 
Коночно можеш!!
Так даже нужно.
Личто я сначала скачиваю страницы потом парсю!!!
 
могу ли я сначала "скопировать" все страници на мой комп и потом извлеч инфо (когда успею сделат грабу избер) ?
или думаете это глупая идея ?
Глупый вопрос. Можешь, если руки из нужного места растут.

P.S. в раздел видел примерный код для простой граббер какойто , но там кажется слышком простой
например если у меня есть 5 <div> и мне нужна информация котороя в 3-тый , тогда что делаю , как нахожу его ... еще не ясно. Ранше пробовал тоже с Snoopy.class.php , но тоже не подходит посколько есть скритые данни которые мне нужни ...
Изучи одну из технологий, XPath или CSS селекторы, или регулярные выражения.
Я посоветую XPath, т.к. удобен и достаточно мощьный, но если покажется сложновато, начни с CSS селектов.
В XPath выбрать третий див следующим образом
Код:
//div[3]
 
Смотри в сторону дома.
Только предварительно сделай все страницы валыдными.
 
попробую сделат один комплесный ответ

Смотри в сторону дома.
Только предварительно сделай все страницы валыдными.

Ответ: если честно не понял тебя.

для другие "могу ли я" это риторический вопрос, а на самом деле правилно ли так сделать

а лучше вот этот:
............. snoopy
пожалуйста читай выше, "снупи" не подходит.
может это у тебя стандартной ответ на слово "граббер", но уви

Изучи одну из технологий, XPath или CSS селекторы
Код:
//div[3]
пример какойто можно ? я как понял Xpath относится к XML ?(причем здес XML?:(nezn:
 
1)
Смотри в сторону дома.
Только предварительно сделай все страницы валыдными.
Ответ: если честно не понял тебя.
Видимо имелось ввиду DOM ( объектная модель документа )
2)
пример какойто можно ? я как понял Xpath относится к XML ?(причем здес XML?)
если документ соответствует стандарту xHTML - то он соответствует стандарту xml -> можно использовать Xpath

вообще регулярные выражения тебе в помощь

а скачать файлы можно почти любым Download Manager'ом


Я в таких случаях качаю wget'ом на шелле, архивирую и уже локально обрабатываю - экономится трафик

Вопрос в чем? Парсить абсолютно одинаво. Разными будут только части получения содержимого файлов ( не по урл будешь делать file_get_contents() а по имени локально файла ) в остальном разницы нет =)

На счет целесообразности -- если информация меняется не часто/ парсится один раз с ресурса ( т.е. ты не будешь дерать его раз в день/неделю, а один раз спрарсишь все что надо ) --- вполне.
 
пример какойто можно ? я как понял Xpath относится к XML ?(причем здес XML?)
Есть инструменты для парсинга невалидного HTML в дерево, либо преобразования невалидного HTML в валидный XHTML. XHTML является XML. В любом случае ты можешь работать с документом, как с деревом XPath, и выбирать данные. Для PHP из таких инструментов, первое что нашел в гугле Для просмотра ссылки Войди или Зарегистрируйся.
 
Есть инструменты для парсинга невалидного HTML в дерево, либо преобразования невалидного HTML в валидный XHTML. XHTML является XML. В любом случае ты можешь работать с документом, как с деревом XPath, и выбирать данные. Для PHP из таких инструментов, первое что нашел в гугле Для просмотра ссылки Войди или Зарегистрируйся.

Tidy приводит хтмл страницу в валидный вид.

Вот пример как парсил я.

PHP:
$rss = simplexml_load_file("http://gzt.ru/export/anons/gzt.xml");	
	//$rss = simplexml_load_file("gzt.xml");
	//echo "<pre>";
	//print_r($rss);
	//echo "</pre>";
	foreach ($rss->channel->item as $item) {
		if ($item->description!='') {  
			$description = description_get_img(quote_smart(iconv('utf-8', 'windows-1251',$item->description)),date("Ymd",strtotime($item->pubDate)),$suite_url);
			pg_query($db, "INSERT INTO news(sourse,sourse_txt,category, title, link, description, \"pubDate\") VALUES 
			('gzt.ru','Газета.Ru','".quote_smart(abx(iconv('utf-8', 'windows-1251',$item->category)))."',
			'".quote_smart(iconv('utf-8', 'windows-1251',$item->title))."','".$item->link."',
			'".$description."',
			'".date("Y-m-d H:i:s",strtotime($item->pubDate))."')");
  			
			//echo "<h2>". iconv('utf-8', 'windows-1251',$item->title). "</h2>";
 			//echo "<p>". iconv('utf-8', 'windows-1251',$item->link). "</p>";
  			//echo "<p>". iconv('utf-8', 'windows-1251',$item->description). "</p>";
  			//echo "<p>".date("Y-m-d H:i:s",strtotime($item->pubDate)). "</p>";
  			//echo "<p>".iconv('utf-8', 'windows-1251',$item->category). "</p>";
  			//echo "<p>".description_get_img(quote_smart(iconv('utf-8', 'windows-1251',$item->description)),date("Ymd",strtotime($item->pubDate)),$suite_url). "</p><br>";	
  			//enclosure($item);	
		}	
	}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху