Существует ли (PHP) Web Scraping Framework, который использует Curl вместо file_get_contents? - PullRequest
2 голосов
/ 13 января 2012

Я только что попытался выполнить очистку с использованием Simple HTML DOM Framework: http://simplehtmldom.sourceforge.net/, но оказалось, что file_get_contents отключен в конфигурации сервера по соображениям безопасности.

Теперь мне нужно найти похожий фреймворк, использующий Curl - кто-нибудь что-нибудь знает?

Сообщение об ошибке, которое я получаю при попытке запустить пример косой черты:

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/vhosts/domain.com/httpdocs/crawlfeed/simple_html_dom.php on line 70

Ответы [ 3 ]

5 голосов
/ 13 января 2012

Просто перетащите страницу вниз с помощью cURL, затем загрузите строку в SimpleHTMLDOM:

$ch = curl_init('http://theurl.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$htmlStr = curl_exec($ch);
curl_close($ch);

$html = new simple_html_dom();

// Load HTML from a string
$html->load($htmlStr);
4 голосов
/ 13 января 2012

Если у вас PHP 5.3 (вы должны, так как PHP 5.2 больше не поддерживается), я настоятельно рекомендую вам Goutte .

Это что-то новое и просто .pharвключить в свой проект.Об HTTP-части заботятся Http Zend и сокет.И у вас есть мощные компоненты BrowserKit и DomCrawler Symfony, которые помогут вам извлечь информацию из HTML (без регулярных выражений, без xpath).

1 голос
/ 13 января 2012

Просто используйте cURL, чтобы получить HTML-код, а затем проанализируйте HTML-код, используя XPATH или регулярные выражения. Использование XPATH - хорошая идея, так как это язык, специально предназначенный для парсинга XML или (X) HTML, который вы хотите использовать.

Вот хороший пример: http://www.2basetechnologies.com/screen-scraping-with-xpath-in-php

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