似乎不能用PHP简单的HTML DOM解析器与网站擦肩而过
我是一个新的刮网站,我有兴趣从这个网站获得票价。 我在p#price-selected-label.filters-selected-label标签中看到了票价,但我似乎无法访问它。我尝试了一些方法并查看了一些教程,但要么返回空白,要么出现一些错误。代码基于似乎不能用PHP简单的HTML DOM解析器与网站擦肩而过,php,html,web-scraping,Php,Html,Web Scraping,我是一个新的刮网站,我有兴趣从这个网站获得票价。 我在p#price-selected-label.filters-selected-label标签中看到了票价,但我似乎无法访问它。我尝试了一些方法并查看了一些教程,但要么返回空白,要么出现一些错误。代码基于 您无法获取它,因为javascript呈现了它,所以它在您的库获取的原始html中不可用 使用phantomjs(将执行javascript) 下载并将可执行文件放置在PHP二进制文件可以到达的路径中 将以下两个文件放在同一目录中: 获取w
您无法获取它,因为javascript呈现了它,所以它在您的库获取的原始html中不可用
使用phantomjs(将执行javascript)强>
下载并将可执行文件放置在PHP二进制文件可以到达的路径中
将以下两个文件放在同一目录中:
获取website.php
<?php
$phantom_script= dirname(__FILE__). '/get-website.js';
$response = exec ('phantomjs ' . $phantom_script);
echo htmlspecialchars($response);
?>
浏览get-website.php和目标站点,执行内联javascript后将返回内容。您还可以使用php/path/to/get-website.php从命令行调用它
网站有时会使用javascript向网站中填充内容。你必须使用php吗?不,我不需要使用php,我只是对它非常熟悉,但如果它工作得更好,我可以使用其他东西。Thanksi通常使用PhantomJs
对于这类东西,它会抓取整个页面,您可以使用jquery选择所需元素并将其返回到php,报告空白页面或“某些错误”不是有用问题的一部分。在您的问题中提供实际的错误消息。感谢您提供的信息,我们将尝试一下!
<?php
$phantom_script= dirname(__FILE__). '/get-website.js';
$response = exec ('phantomjs ' . $phantom_script);
echo htmlspecialchars($response);
?>
var webPage = require('webpage');
var page = webPage.create();
page.open('https://www.cheaptickets.com/events/tickets/firefly-music-festival-4-day-pass-2867495', function(status) {
if (status === "success") {
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', function() {
var myElem = $('p#price-selected-label.filters-selected-label');
console.log(myElem);
});
phantom.exit();
}
});