我试图获取www.soccerway.com的html。特别是:
有label-wrapper
课程我也尝试过:select.nav-select
但我无法获得任何内容。我做的是:
1)创建了一个名为grabber.php
的php文件,此文件包含以下代码:
<?php echo file_get_contents($_GET['url']); ?>
2)使用以下内容创建了index.html
文件:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>test</title>
</head>
<body>
<div id="response"></div>
</body>
<script>
$(function(){
var contentURI= 'http://soccerway.com';
$('#response').load('grabber.php?url='+ encodeURIComponent(contentURI) + ' #label-wrapper');
});
var LI = document.querySelectorAll(".list li");
var result = {};
for(var i=0; i<LI.length; i++){
var el = LI[i];
var elData = el.dataset.value;
if(elData) result[el.innerHTML] = elData; // Only if element has data-value attr
}
console.log( result );
</script>
</html>
答案 0 :(得分:2)
我在这里看到了几个问题。
var contentURI= 'http:/soccerway.com #label-wrapper';
您错过了http://
中的第二个斜杠,并且您将带有空格和ID的网址传递给file_get_contents
。你会想要这个:
var contentURI = 'http://soccerway.com/';
然后您需要从生成的HTML中解析您感兴趣的项目。
#label-wrapper
需要在jQuery load()
调用中,而不是file_get_contents
,并且需要使用encodeURIComponent
正确转义contentURI变量:
$('#response').load('grabber.php?url='+ encodeURIComponent(contentURI) + ' #label-wrapper');
您的代码还包含一个可能非常危险的大量漏洞,因为它允许任何人以grabber.php
值url
访问router.c
服务器上的文件位置。这可能会损害您的数据库密码或服务器上的其他敏感数据。