2013-03-24 3 views
1

Я очень новичок в программировании и нуждаюсь в небольшой помощи в получении данных с веб-сайта и передаче его в свой PHP-скрипт.Php Скремблирование данных с веб-сайта

Веб-сайт http://www.birthdatabase.com/.

Я хотел бы подключить имя (первое и последнее) и получить результат. Я знаю, что вы можете запросить сайт, передав имя в URL-адресе, но у меня возникают проблемы с очисткой результатов.

http://www.birthdatabase.com/cgi-bin/query.pl?textfield=FIRST&textfield2=LAST&age=&affid=

Я использую file_get_contents функции ($ URL), чтобы получить страницу, но нужна помощь после этого. В частности, я хотел бы очистить только результаты от определенного состояния, если для этого имени есть несколько результатов.

Благодарим за помощь.

+0

Его работа для меня ... Refer: http://code.google.com/p/php-html2array/downloads/detail?name=class.htmlParser.php – Arvind

+0

Я пробовал использовать preg_match, но я не уверен, что это лучший способ – ChanCanasta

+0

Как использовать этот парсер HTML? – ChanCanasta

ответ

2

Вам нужен класс awesome simple_html_dom.

С помощью этого класса вы можете запросить DOM веб-страницы аналогично jQuery.

Сначала включают класс в вашей страницы, а затем получить содержимое страницы с этим фрагментом:

$html = file_get_html('http://www.birthdatabase.com/cgi-bin/query.pl?textfield=' . $first . '&textfield2=' . $last . '&age=&affid='); 

Затем вы можете использовать CSS выбор, чтобы очистить ваши данные (что-то вроде этого):

$n = 0; 
foreach($html->find('table tbody tr td div font b table tbody') as $element) { 
    @$row[$n]['tr'] = $element->find('tr')->text; 
    $n++; 
} 

// output your data 
print_r($row); 
+0

Спасибо за помощь. Этот класс определенно похож на то, что мне нужно. Вывод from birthdatabase.com содержит несколько таблиц и нет уникальных тегов для очистки. Надеюсь, я использую правильную терминологию. Я вообще-то не знаю, так что любая помощь будет оценена. – ChanCanasta

+0

Я не из США, поэтому я не знаю ответа на это, но вы могли бы использовать почтовый индекс, чтобы заставить государство, которое вы хотите каким-то образом? – atwright147

+0

Состояния перечислены как часть вывода. Возможно, я мог бы найти соответствующие значения в массиве, а затем вывести соответствующие дни рождения. Думаю, мой вопрос по-прежнему связан с тем, чтобы получить этот массив в первую очередь. Вывод базы данных содержит несколько таблиц, содержащих объявления и другие глупости, которые я не хочу в массиве. Как мне обойти это? – ChanCanasta

Смежные вопросы