Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как граббить таблицы с других сайтов? Но не с индекс страницы.
 
 автор: Rewart   (12.02.2009 в 22:52)   письмо автору
 
 

Вот я написал простой граббер вытяжки страниц с сайтов, но он работает только на тех страницах, которые являются индексовыми. Как сделать так чтоб качать с любой страницы данного сайта.
Вот пример сайта http://www.basket.ru/index.php?dn=season&to=position&id=14&ml=12
Помогите , пожалуйста решить эту проблему.

  Ответить  
 
 автор: ddhvvn   (12.02.2009 в 23:04)   письмо автору
 
   для: Rewart   (12.02.2009 в 22:52)
 

Чет не понятно.... а адрес поменять?

  Ответить  
 
 автор: Rewart   (12.02.2009 в 23:08)   письмо автору
 
   для: ddhvvn   (12.02.2009 в 23:04)
 

Ну вот код

$document = file_get_contents('http://basket.tambovsport.ru/');
$begin= explode('<table border=0  style="width:96%" bgcolor=D0D0D0 cellspacing=1 cellpadding=2>',$document);  
$end = explode('</table>', $begin[1]);  


Видирает благополучно с http://basket.tambovsport.ru/
Но вот если пишешь http://www.basket.ru/index.php?dn=season&to=position&id=14&ml=12
, и меняешь конечно строки в $begin и $end , то не работает...

  Ответить  
 
 автор: sim5   (13.02.2009 в 03:02)   письмо автору
 
   для: Rewart   (12.02.2009 в 23:08)
 

В полученной вами строке, совсем не обязательно может быть '<table border=0 style="width:96%" bgcolor=D0D0D0 cellspacing=1 cellpadding=2>', даже при ее наличии. Она может иметь вид, например:
'<table border=0 style="width:96%" bgcolor=D0D0D0
cellspacing=1 cellpadding=2>'
и т.п.. Плюс к тому же, сама строка может содержать разное число пробелов. Убирайте из строки переводы строк и табуляцию перед получением массива.

  Ответить  
 
 автор: Rewart   (13.02.2009 в 10:22)   письмо автору
 
   для: sim5   (13.02.2009 в 03:02)
 

$document = file_get_contents('http://www.basket.ru/index.php?dn=season&to=position&id=14&ml=12');
echo("$document ");


Попробовал просто вывести всю страницу -результата тоже нет, а раз не выводит страницу , то об отыскании каких либо границ вывода надо повременить. Похоже какая то проблема с самой страницей, или я ошибаюсь? Может как-нибудь надо по другому к ней обращаться?
Но на счёт обращения к строке, действительно, кодировки в опере и нотепаде++ разнятся. Учту на будущее.

  Ответить  
 
 автор: Giga   (13.02.2009 в 10:23)   письмо автору
 
   для: Rewart   (12.02.2009 в 22:52)
 

Еще полезной для граббинга может оазатся не только file() -> explode() -> explode() а такая вещь как XML парсер,
    
$xml_string = file_get_contents('http://basket.tambovsport.ru/');
$xml = simplexml_load_string($xml_string);

И посмотреть что получится в итоге через echo var_dump($xml);

  Ответить  
 
 автор: Rewart   (13.02.2009 в 10:38)   письмо автору
 
   для: Giga   (13.02.2009 в 10:23)
 

Походу тама строки с XML нет) или есть ошибки. Раз выдает
bool(false)
. Это с http://www.basket.ru/index.php?dn=season&to=position&id=14&ml=12
А вот с http://basket.tambovsport.ru/выбегает кучу предупреждений: типа кодировок , ошибок анализатора и.т.д.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования