Я создаю приложение для веб-поиска на локальном сервере (LAMPP - XAMPP для Linux), и все работает нормально. Когда я пытаюсь загрузить этот проект в свою учетную запись университета и запускать его со своего сервера, simple_html_dom ведет себя по-другому. Я могу открывать только страницы с расширением .html (например, http://www.example.com/folder/index.html), но я не могу открывать такие страницы, как (например, http://www.example.com/folder/), хотя я могу открывать такие страницы на моем локальном сервере. Я даже пытался использовать завиток, но ничего не происходит. Что бы это могло быть? Отключали ли они что-то на сервере или что?PHP Простой HTML DOM Parser работает локально, но не на удаленном сервере
ответ
Взгляните на Симфонию DOMCrawler Component. Это очень удобный инструмент для сканирования DOM. Он может использоваться как отдельный компонент.
Также ознакомьтесь с библиотекой Goutte PHP Web Scraper, основанной на библиотеке Symphony DomCrawler и Guzzle HTTP.
Зачем это произошло? Вопрос был о правильном инструменте для обхода DOM, и я предложил хорошее решение. – AlexM
Пожалуйста, попробуйте создать файл .htaccess и поместите этот код на нем:
#Alternate default index page
DirectoryIndex index.html
<?php
require("simple_html_dom.php");
class PageExtractor {
private $page;
private $str;
public function __construct($url) {
$this->loadPage($url);
if (!isset($this->page))
echo "<strong>ERROR - Couldn't open the page";
}
public function loadPage($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$this->str = curl_exec($ch);
curl_close($ch);
$this->page = new simple_html_dom();
$this->page->load($this->str);
}
public function showPage() {
echo $this->page;
}
}
?>
Так вот мой класс (здесь я пытаюсь немного обходной путь с завитком, но он работает без завитка тоже, только с file_get_html ($ URL).
<?php
require("PageExtractor.class.php");
$e = new PageExtractor("http://example.com/~folder/");
$e->showPage();
?>
Когда я сделать это на сервере университета этот код «отрезает» остальную часть моей страницы, так что нет закрывающие теги. Я пробовал все, как на местном, и удаленный сервер, но локально все хорошо.
http://imgur.com/JHgpbcA Что происходит на сервере, когда я помещаю свой php-код внутри этого div, поэтому я могу отображать скребковые данные. – ivke080
- 1. PHP Простой HTML DOM Parser не работает
- 2. Загрузка файла PHP (работает локально, но не на удаленном сервере).
- 3. Простой HTML DOM Parser PHP
- 4. PHP Простой HTML DOM Parser
- 5. PHP-скрипт загрузки работает локально, но не на удаленном сервере
- 6. Geolocation работает локально, но не на удаленном сервере
- 7. PHP-код, работающий локально, но не на удаленном сервере
- 8. jQuery .toggleClass() работает локально, но не на удаленном сервере
- 9. PHP image() работает локально, но не работает на удаленном узле
- 10. Паспорт auth работает локально, но не на удаленном сервере
- 11. Dojo treegrid работает нормально локально, но не на удаленном сервере
- 12. Невозможно использовать HTML DOM Parser на сервере
- 13. PHP Простой HTML DOM Parser Memory Leak
- 14. Отказоустойчивый для PHP Простой HTML DOM Parser
- 15. Альтернатива простой HTML DOM Parser?
- 16. PHP Простой HTML DOM Parser display none
- 17. простой html dom parser $ html пуст
- 18. scrapping using PHP Простой HTML DOM Parser
- 19. WCF работает локально, но возвращает 404 на удаленном сервере
- 20. Служба WCF работает локально, но возвращает 404 на удаленном сервере
- 21. простой html dom не работает на моем выделенном сервере
- 22. Данные сеанса работают локально, но не на удаленном сервере
- 23. Программа C работает нормально локально, но segfaults на удаленном сервере
- 24. Mysqli получает предупреждение на удаленном сервере, но работает локально
- 25. PHP HTML DOM Parser
- 26. Ajax работает на сервере, но не локально
- 27. Recaptcha.create работает локально, но не на сервере
- 28. PHP простой HTML DOM Parser: извлечение всего дерева DOM
- 29. Шрифт работает локально, но не на сервере
- 30. Используйте простой HTML DOM Parser для JSON?
Это зависит от веб-сервера, некоторые службы хостинга отключили DOM, поэтому его невозможно выполнить. На стороне примечания, возможно, разместите свой код здесь, для диагностики. – Panda
Это может быть что угодно. Вы должны связаться с администратором хоста или найти лучший. – pguardiario