我的目标是获取一个元素
我尝试使用php和xpath来获取源代码,借助http://us3.php.net/manual/en/class.domxpath.php提供的工具可以获取html页面中任何标签中的内容。但是问题可能在于该元素(一个日历)是由JavaScript形成的,无法被服务器端的php捕获。那么,有没有办法通过JavaScript来捕获这样的元素(div)呢?
有针对此类问题的JavaScript脚本示例(如果我理解正确的话),但目前我无法使简单的JavaScript代码起作用。下面的示例显示了我如何构建代码。这里的$ajax只是我尝试解决问题的其中一种方法,但不知道如何使用它。我无法弄清楚为什么简单的JavaScript函数不起作用(只是测试目的)。
简而言之,我有一个链接指向一个网页,在该网页上显示了一个(预订)日历,但是在“正常”的源代码中却缺少了这个日历,使用file_get_contents(php)无法获取。如果我使用Chrome工具(F12)浏览HTML源代码,我可以在那里找到日历。我希望通过JavaScript或PHP等方式获得该信息。
<div id="calender">
及其所有内容在浏览器中显示。问题在于普通的get-html-source无法做到这一点。我要查找的元素在php函数file_get_contents的html输出中不存在。我尝试使用php和xpath来获取源代码,借助http://us3.php.net/manual/en/class.domxpath.php提供的工具可以获取html页面中任何标签中的内容。但是问题可能在于该元素(一个日历)是由JavaScript形成的,无法被服务器端的php捕获。那么,有没有办法通过JavaScript来捕获这样的元素(div)呢?
有针对此类问题的JavaScript脚本示例(如果我理解正确的话),但目前我无法使简单的JavaScript代码起作用。下面的示例显示了我如何构建代码。这里的$ajax只是我尝试解决问题的其中一种方法,但不知道如何使用它。我无法弄清楚为什么简单的JavaScript函数不起作用(只是测试目的)。
<!doctype html>
<html lang="fi">
<head>
<meta charset="utf-8">
<title>load demo</title>
<style>
body {
font-size: 12px;
font-family: Arial;
}
</style>
<script type="text/javascript">
function ok {
alert "OK";
}
function get_html (my_html){
alert "OK";
var l = document.getElementById('my_link').value;
alert l;
alert my_html;
var url = my_html;
$.ajax({
url: url,
dataType: 'html'
success: function(data){
//do something with data, which is the page 1.html
var f = fs.open("testi_kalenteri.html", "w");
f.write(data);
f.close();
alert "data saved";
}
});
}
</script>
</head>
<body>
<p id ='my_link' onclick='get_html("lomarengas.fi/en/cottages/kuusamo-rukasaukko-9192")'>html-link</p>
<p id ='ok' onclick='ok()'>show ok</p>
</body>
</html>
简而言之,我有一个链接指向一个网页,在该网页上显示了一个(预订)日历,但是在“正常”的源代码中却缺少了这个日历,使用file_get_contents(php)无法获取。如果我使用Chrome工具(F12)浏览HTML源代码,我可以在那里找到日历。我希望通过JavaScript或PHP等方式获得该信息。