Попытка разобрать веб-страницу с помощью php

0

Я пытаюсь разобрать веб-страницу и распечатать таблицу, которая находится на веб-странице. Я использую php_simple_html синтаксический анализатор dom. Однако, когда я пытаюсь разобрать таблицу с веб-страницы, все команды javascript для вывода таблицы превращаются в комментарии в php:

<html>
<script type="text/javascript" src="jquery.js"></script>
<?php
    include 'crawling/simple_html_dom.php';
    $html = file_get_html('http://uiucfreefood.com/');


    $ret = $html->find('body', 0)->find('div', 10)->find('table',0); //gets to the table tag
    echo $ret; // nothing is echoed out because the original webpage uses jscript commands to write the table to the page but these commands get turned to comments for some reason.
?>
</html>

Когда я проверяю элемент страницы, где я повторяю анализируемую информацию, я могу видеть, что тег таблицы со всей информацией находится там, но команды jscript были превращены в комментарии. Есть ли способ, чтобы я мог просто захватить информацию и повторить ее сам? Я попробовал добавить другое → find ('tbody'); в конце команды parse, но ничего не делает. Любые советы приветствуются. Благодарю.

EDIT: вы можете попробовать этот код самостоятельно, если вы загрузите simple_html_dom.php и включите его в свой php файл. Источник: http://sourceforge.net/projects/simplehtmldom/files/

EDIT: Просто заметил что-то действительно важное. Команды javascript также закомментированы на исходной веб-странице. Вместо этого на исходной веб-странице используется функция javascript для печати таблицы, которую я не определил. Написание этой функции самостоятельно должно решить проблему.

EDIT: да, это сработало.

  • 0
    Почему вас интересуют команды Javascript? Редактировать: ааа, я вижу, хм
  • 0
    если честно, я не знаю, есть ли у меня способ получить информацию. Я думал, что сохранение команд jscript будет простым способом вывода таблицы без изменений. Например, мне бы хотелось, чтобы каждая строка таблицы была следующей: «Обед 11/12 12:00 428 Оружейная палата, интегрирующая исследования старшекурсников в крупные вводные классы»
Показать ещё 2 комментария
Теги:
web-crawler
dom

1 ответ

2
Лучший ответ

Попробуйте использовать file_get_content вместо получения HTML и посмотрите, работает ли это. Честно говоря, в зависимости от ваших потребностей вы должны закодировать собственный парсер. Не так сложно написать парсер для сканирования и отображения таблицы.

Вам просто нужно следующее:

$array = split("<table>", $content);
$boolPlaceHolder = false;

и затем вы можете установить местозаполнитель в true, когда вы столкнетесь с этим способом, вы можете сканировать штрихи содержимого и захватить таблицу.

Надеюсь это поможет.

  • 0
    Закончилось этим, оказалось намного проще.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню