Парсинг таблицы

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

apekoff

Создатель
Регистрация
19 Авг 2008
Сообщения
40
Реакции
1
Привет всем !
Пользуюсь Human Emulator,вроде бы особых знаний Php не нужно,но...
Вот не давно решил для себя написать скрипт для парсинга кейвордов с хттп://conversion.7search.com/scripts/advertisertools/keywordsuggestion.aspx вообщем такая беда у меня - пытаюсь сохранить все кейворды методом -
$res = $webpage->get_source($as_text); //получаем код страницы
$p1 = strpos($res,"style=\"border-width:0px;font-family:Arial;font-size:10pt;width:100%;\">");
$p2 = strpos($res,"<p align=\"center\">");
$s = substr($res, $p1+72, $p2-$p1-72);
preg_match_all('/\<a href\=.+?\?(.+?)\'\>(.+?)\<\/a/i', $res, $matches);
var_dump($matches);
получаю все кейворды в виде массива . Когда пытаюсь сохранить $matches в текстовый файл , у меня в нем получается запись "ArrayArrayArray"
Я так понимаю нужно преобразовать массив в текст.Ммм как это сделать ?
Еще пробовал такой вариант -
$dom = new domDocument;
$dom->loadHTML($res);
$dom->preserveWhiteSpace = false;
$tables = $dom->getElementsByTagName('table');
$rows = $tables->item(0)->getElementsByTagName('tr');
foreach ($rows as $row)
{
$cols = $row->getElementsByTagName('td');
echo $cols->item(0)->nodeValue.'<br />';
echo $cols->item(1)->nodeValue.'<br />';
echo '<hr />';
}
эмм нашел это тут - Для просмотра ссылки Войди или Зарегистрируйся
эмм получаю в режиме отладки - ВСЕ в текстовом формате , но кроме таблицы
Может кто слакивался ? Прошу помочь разобраться :)
 
получаю все кейворды в виде массива . Когда пытаюсь сохранить $matches в текстовый файл , у меня в нем получается запись "ArrayArrayArray"
Я так понимаю нужно преобразовать массив в текст.Ммм как это сделать ?
Это зависит от отого, в каком формате тебе нужно раписать в файл. Например
PHP:
$content ='';
foreach($matches[1] as $id=>$url){
 $content .='url:'.$url.';text:'.$r[2][$id]."\n";
}
Можно использовать DOM, но мне кажется это труднее.
 
Эмм а куда простите это вставляется ?
вот весь код моего скрипта на этапе копирования кеев-
$res = $webpage->get_source($as_text); //получаем код страницы

$p1 = strpos($res,"style=\"border-width:0px;font-family:Arial;font-size:10pt;width:100%;\">");

$p2 = strpos($res,"<p align=\"center\">");

$s = substr($res, $p1+72, $p2-$p1-72);

preg_match_all('/\<a href\=.+?\?(.+?)\'\>(.+?)\<\/a/i', $res, $matches);
var_dump($matches);


AddFile("test.txt",$s);

куда простите вставлять ваш код ?-
$content ='';
foreach($matches[1] as $id=>$url){
$content .='url:'.$url.';text:'.$r[2][$id]."\n";
}
Извините опять же , ну не силен я пока в PHP
Кстати у меня почему то не работает панелька со смайликами ,шрифтами и пхп код не могу поставить в виде цитаты:( так что извините опять же
 
Значит так
Эмм а куда простите это вставляется ?
вот весь код моего скрипта на этапе копирования кеев-
$res = $webpage->get_source($as_text); //получаем код страницы

$p1 = strpos($res,"style=\"border-width:0px;font-family:Arial;font-size:10pt;width:100%;\">");

$p2 = strpos($res,"<p align=\"center\">");

$s = substr($res, $p1+72, $p2-$p1-72);

preg_match_all('/\<a href\=.+?\?(.+?)\'\>(.+?)\<\/a/i', $res, $matches);
var_dump($matches);

надо заменить на
preg_match_all("#<a href='(keywordsuggestion\.aspx\?q=(.*?))'>#is", $res, $matches);
- в массиве все ссылки- в первом кармане, и текст во втором
теперь получаем содержимое массива в текст
PHP:
$content ='';
foreach($matches[1] as $id=>$url){
 $content .='url:'.$url.';text:'.$r[2][$id]."\n";
}

Кстати у меня почему то не работает панелька со смайликами ,шрифтами и пхп код не могу поставить в виде цитаты:( так что извините опять же
Можно использовать теги [PHP ] [ /PHP] - только без пробелов
 
Вот что у меня получилось ,заменил на этот код
PHP:
$res = $webpage->get_source($as_text); //получаем код страницы

preg_match_all("#<a href='(keywordsuggestion\.aspx\?q=(.*?))'>#is", $res, $matches);
$content ='';
foreach($matches[1] as $id=>$url){
 $content .='url:'.$url.';text:'.$r[2][$id]."\n";
}
когда вывожу
PHP:
echo $content;
в окне отладки у меня следующее это по кейворду "billie mays" -
url:keywordsuggestion.aspx?q=billie mays;text: url:keywordsuggestion.aspx?q=billie mays dead;text: url:keywordsuggestion.aspx?q=billie mays death;text:
все в одну строчку ..
как мне каждый кейворд представить в чистом виде и каждый в новой строчке
 
PHP:
echo "<pre>";
echo $content;

или открыть исходный код страницы
 
не канает .. в отладке то же самое ...

Добавлено через 2 минуты
может быть существует какой нить все таки вариант чтобы целиком сохранаять просто таблицу , а то я уже с этими регулярками кажется скоро кончусь:)
 
PHP:
//код
 $content .='url:'.$url.';text:'.$r[2][$id]."\n"; 
//замени на 
 file_put_contents('out.txt','url:'.$url.';text:'.$r[2][$id]."\n", FILE_APPEND);
 
опять не канает :(
записывает локально тоже самое ,тоесть все кеи в строчку .И сами кеи в виде
url:keywordsuggestion.aspx?q=billie mays;text: url:keywordsuggestion.aspx?q=billie mays dead;text: url:keywordsuggestion.aspx?q=billie mays death;text:
как сделать так -
billie mays
billie mays dead
billie mays death
 
опять не канает :(
записывает локально тоже самое ,тоесть все кеи в строчку .И сами кеи в виде
как сделать так -
Ты смотриш обычным блокнотом? Просто он может не воспринемать один перенос строки \n. Единственное там $matches а не $r
PHP:
file_put_contents('out.txt',$matches[2][$id]."\r\n", FILE_APPEND);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху