我如何像网络浏览器一样模拟请求?

问题描述 投票:0回答:1

当我看着https://www.tutti.ch/de/vi/zaurich/haushalt/geraate-utensilien/tassen-und-unterteller-arv-ikea-blaue-streifen/27002681通过浏览器,我看到的是一个完整的网站,而不是我使用的网站:

file_get_contents(...) // or

$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,...);
$result=curl_exec($ch);
var_dump($result);`

如何获得在浏览器中看到的html代码?

php browser emulation
1个回答
0
投票

此网站上的html由浏览器使用javascript在客户端呈现。如果您尝试解析网站上的某些内容,请尝试使用无头浏览器。无头浏览器是没有图形界面的浏览器,但其行为类似于普通浏览器。 Chrome和Firefox都有无头版本。

这里是一个有用的lib,可使用php查询无头浏览器:https://github.com/php-webdriver/php-webdriver您也可以像实际用户那样与javascript发送命令进行交互。

如果您没有托管帐户中的权限,则可以将浏览器和驱动程序安装在其他计算机(甚至是您自己的PC)上。

© www.soinside.com 2019 - 2024. All rights reserved.