Я пытаюсь очистить эту страницу http://www.buddytv.com/trivia/game-of-thrones-trivia.aspx, и она не работает.
Я пытался
$html = new simple_html_dom(); $html->load_file($url);
Но вопрос, который я ищу, чтобы схватить (. Trivia-question), не может быть найден. Может ли кто-нибудь сказать мне, что я делаю неправильно?
Большое спасибо!
И я попробовал
<?php $Page = file_get_contents('http://www.buddytv.com/trivia/game-of-thrones-trivia.aspx'); $dom_document = new DOMDocument(); //errors suppress because it is throwing errors due to mismatched html tags @$dom_document->loadHTML($Page); $dom_xpath_admin = new DOMXpath($dom_document_admin); $elements = $dom_xpath->query('//*[@id="id60questionText"]'); var_dump($elements);
Итак, вот пример фантомов:
Вам нужно скачать phantomjs из: http://phantomjs.org/ , где-нибудь, где вы можете легко получить доступ к скрипту.
Проверьте его, запустив {installationdir} / bin / phantomjs (phantomjs.exe на windows) –версия
Затем создайте файл JS где-нибудь в своем проекте, ex browser.js
var page = require('webpage').create(); page.open('http://www.buddytv.com/trivia/game-of-thrones-trivia.aspx', function() { page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { search = page.evaluate(function() { return $('#id60questionText').text(); }); console.log(search); phantom.exit() }); })
Затем в вашем скрипте PHP прочитайте его так:
$pathToPhatomJs = '/home/aurimas/Downloads/phantomjs/phantomjs-1.9.1-linux-x86_64/bin/phantomjs'; $pathToJsScript = '/home/aurimas/Downloads/phantomjs/phantomjs-1.9.1-linux-x86_64/browser.js'; $stdOut = exec(sprintf('%s %s', $pathToPhatomJs, $pathToJsScript), $out); echo $stdOut;
Измените $pathToPhatomJs
и $pathToJsScript
соответствии с вашей конфигурацией.
Если вы находитесь в окнах, это может не сработать. Затем вы можете сменить PHP-скрипт на:
$pathToPhatomJs = '/home/aurimas/Downloads/phantomjs/phantomjs-1.9.1-linux-x86_64/bin/phantomjs'; $pathToJsScript = '/home/aurimas/Downloads/phantomjs/phantomjs-1.9.1-linux-x86_64/browser.js'; exec(sprintf('%s %s > phatom.txt', $pathToPhatomJs, $pathToJsScript), $out); $fileContents = file_get_contents('phatom.txt'); echo $fileContents;