Извлечение данных из веб-страниц javascript - PullRequest
0 голосов
/ 25 апреля 2011

Мне нужно создать систему для извлечения огромных объемов данных из коллекции веб-страниц.Многие из этих сайтов (возможно, около 90%) работают на различных системах javascript.Мне интересно, что является наиболее эффективным методом для извлечения этих данных?

Поскольку каждый сайт отличается от других, я ищу гибкое решение, а поскольку существует много сайтов, я ищу решение, которое будет оказывать как можно меньше нагрузки на мою сеть.

Большая часть моего опыта программирования на C, C ++ и Perl, но я рад тому, что дает лучший результат.

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

Я провел собственное исследование, но здесь я ничего не понимаю.Я надеюсь, что кто-то еще может мне помочь!:)

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

Вам потребуется браузер, который интерпретирует JavaScript и выполняет фактические запросы за вас. Затем вам нужно будет сделать снимок DOM интерпретированного результата. Это не будет тривиально, и это будет невозможно в чистом PHP.

У меня нет собственного опыта, но, возможно, Selenium Suite может помочь. Это набор автоматизации, используемый для тестирования программного обеспечения, но, согласно этой статье , в некоторой степени он также может использоваться для анализа.

0 голосов
/ 25 апреля 2011

Может быть, вам стоит попробовать класс PHP DOMDocument.Например, этот код «украдет» все теги таблицы из URL.

$data=array();    
$url='your.site.com';
$out=file_get_contents($url);
$dom=new DOMDocument();
$dom->loadHTML($out);
foreach($dom->getElementsByTagName('table') as $table){
data[]=$table->nodeValue;
}
print_r($data);

Вы можете взять и манипулировать всем DOM и анализировать весь HTML-документ.Попробуйте вызвать этот сценарий асинхронно с подходом AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...