Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php可以';无法获取网页的url内容_Php_Url_Web Scraping - Fatal编程技术网

php可以';无法获取网页的url内容

php可以';无法获取网页的url内容,php,url,web-scraping,Php,Url,Web Scraping,我试图获取Url的内容,并在其中搜索一些值。 我以前做过,没有问题,但该方法在该Url上不起作用: 我试过了 $data = file_get_contents("https://steamdb.info/app/1060870/"); 但我得到的是这个 failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in C:\wamp64\www\cont\tst.php on line 2 我也试

我试图获取Url的内容,并在其中搜索一些值。 我以前做过,没有问题,但该方法在该Url上不起作用: 我试过了

$data = file_get_contents("https://steamdb.info/app/1060870/");
但我得到的是这个

failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in C:\wamp64\www\cont\tst.php on line 2
我也试过史努比图书馆,但也没用。 有什么建议吗?
提前谢谢

看起来,只有在请求头中指定了用户代理时,streamdb.info才会接受请求

编辑:看起来它可以处理这些标题

$curl=curl_init();
curl_setopt_数组($curl,数组(
CURLOPT_URL=>”https://steamdb.info/app/1060870/",
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_编码=>“”,
CURLOPT_MAXREDIRS=>10,
CULLOPT_超时=>0,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_HTTP_VERSION=>CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST=>“获取”,
CURLOPT_HTTPHEADER=>数组(
“Cookie:uu cfduid=d37d18f76a77fbb1d7e6c9422656437811602245996”,
“用户代理:PostmanRuntime/7.26.5”,
“接受:*/*”
),
));
$response=curl\u exec($curl);
curl_close($curl);
回音$应答;

您需要curl来运行这个(apt get install php curl on debian发行版)

问题似乎更多的是steam不希望通过某些方式(例如通过php程序)访问此页面的内容

如果您在另一个URL(例如,本页面的URL)上尝试相同的代码,就可以了

403 HTTP错误代码表示:不允许您查看该页面。

您也可以使用来获取该页面。您必须设置标题。我使用这段代码来确保我可以得到html,您可以使用Dom解析器修改和遍历它

需要“vendor/autoload.php”;
使用Nesk\PUPPHPETER\PUPPETER;
使用Nesk\Rialto\Data\JsFunction;
$puppeter=新的木偶师;
$browser=$puppeter->launch();
$page=$browser->newPage();
$page->setUserAgent('Opera/9.80(WindowsNT6.2;WOW64)Presto/2.12.388版本/12.17');
$page->goto($page)https://steamdb.info/app/1060870/');
$data=$page->evaluate(JsFunction::createWithBody('returndocument.documentElement.outerHTML');
打印(数据);
$browser->close();

403禁区的哪个部分对你来说是个谜?真不幸!无论如何,谢谢你的信息。