[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг таблицы
soniclord
Здравствуйте!
Скажите пожалуйста, как можно легко и быстро реализовать парсинг таблицы с сайта Новости



Спустя 14 минут, 55 секунд (8.01.2010 - 16:47) VolCh написал(а):
file_get_contents и регулярки smile.gif

Спустя 29 минут, 34 секунды (8.01.2010 - 17:16) soniclord написал(а):
а можно ли по-подробнее :-)

Спустя 52 минуты, 49 секунд (8.01.2010 - 18:09) VolCh написал(а):
Примерно так

$html=file_get_contents("http://www.vesti.ru/fininfo.html?nojquery=1");
$table=preg_match_all("#(<td>(.*?)</td>.*?)*#", $html);
var_dump($table);


Спустя 1 час, 21 минута, 54 секунды (8.01.2010 - 19:31) jetistyum написал(а):
VolCh
Ты не оставляешь человеку возможности поковыряться в мануалах и выяснить что же такое регулярки... что же такое file_get_contents();

завтра он придет с вопросом, а как мне вытащить новости с такого сайта, а послезавтра с третьего...

Спустя 1 час, 3 минуты, 24 секунды (8.01.2010 - 20:35) VolCh написал(а):
jetistyum
пороется когда этот код у него не заработает или заработает не так как хочется rolleyes.gif

Спустя 10 часов, 40 минут, 15 секунд (9.01.2010 - 07:15) soniclord написал(а):
да, пришлось порыться, так как он не заработал biggrin.gif

Спустя 51 минута, 39 секунд (9.01.2010 - 08:07) soniclord написал(а):
нифига не получается в самой первой строке, пишет: Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен.
я уже гугл прочесал, пробовал вводить ip вместо dns, ничего не получается sad.gif

Спустя 32 минуты, 56 секунд (9.01.2010 - 08:39) soniclord написал(а):
разобрался!
// Define a context for HTTP.
$aContext = array(
'http' => array(
'proxy' => 'tcp://192.168.0.2:3129', // This needs to be the server and the port of the NTLM Authentication Proxy Server.
'request_fulluri' => True,
),
);

$cxContext = stream_context_create($aContext);
// Now all file stream functions can use this context.
$sFile = file_get_contents("http://www.vesti.ru/fininfo.html?nojquery=1", False, $cxContext);
echo $sFile;
$table=preg_match_all("#(<td>(.*?)</td>.*?)*#", $html);
var_dump($table);

Спустя 8 минут, 59 секунд (9.01.2010 - 08:48) VolCh написал(а):
О, я б, наверное, долго думал в чем проблема smile.gif

Спустя 8 минут, 32 секунды (9.01.2010 - 08:57) soniclord написал(а):
теперь с регулярными не могу разобраться.
$table=preg_match_all("#(<td>(.*?)</td>.*?)*#", $html);
изначально требовал 3й параметр - вывод. Добавил
$table=preg_match_all("#(<td>(.*?)</td>.*?)*#", $sFile,$out);
var_dump($table);


Теперь он выводит
int(27216) 

Спустя 5 минут, 34 секунды (9.01.2010 - 09:03) VolCh написал(а):
Вот что значит писать по памяти smile.gif дампай $out

Спустя 8 минут, 34 секунды (9.01.2010 - 09:11) soniclord написал(а):
тогда он выводит
array(3) { [0]=>  array(27216) { [0]=>  string(0) "" 
[1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) ""
[6]=> string(0) "" [7]=> string(0) "" [8]=> string(0) "" [9]=> string(0) "" [10]=> string(0) "" [11]=> string(0) ""
[12]=> string(0) "" [13]=>
- и так раз тыщу

Спустя 2 часа, 40 минут, 37 секунд (9.01.2010 - 11:52) VolCh написал(а):
В общем тебе надо написать регулярку такую, чтобы:
  • в неё попадало все что между <td> и </td>
  • игнорировала возможность наличия class="..."
  • игнорировала незначащие пробелы
  • игнорировала переводы строк в исходнике

И тогда $out будет забит не пустыми строками, а значениями из таблицы


Спустя 1 час, 58 минут, 41 секунда (9.01.2010 - 13:50) soniclord написал(а):
помогите пожалуйста, а я отблагодарю, просто нет времени разбираться с регулярками. А классы не надо игнорировать - я просто от туда стили скачаю.
если вы согласны, моя ася - 213061116
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.