编程语言
首页 > 编程语言> > 使用php curl刮一个动态加载的网站

使用php curl刮一个动态加载的网站

作者:互联网

我是新手,正在废弃两个网站.但是当我试图抓住动态加载网站时,问题出现了.当网站使用JavaScript呈现时,我无法抓取网站的内容.

有什么方法可以使用php curl或任何其他与PHP相关的客户端来抓取该网站的内容吗?

这是我到目前为止所做的:

$link = "https://www.glassdoor.com/Job/jobs.htm?suggestCount=0&suggestChosen=false&clickSource=searchBtn&typedKeyword=android+developer&sc.keyword=android+developer&locT=N&locId=192&jobType=";

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
$data = curl_exec($ch);


$document = new DOMdocument();
libxml_use_internal_errors(true);
$document->loadHTML($data);
$elements = $document->getElementsByTagName("div");

foreach($elements as $element){
  	echo $element->nodeValue."<br>";;
}

解决方法:

你需要无头浏览器,你可以使用PHP Wrapper for PhantomJS,这里是链接http://jonnnnyw.github.io/php-phantomjs/.这将解决你的问题.它具有以下功能:

>通过PhantomJS无头浏览器加载网页
>查看详细的响应数据,包括页面内容,标题,状态代码等.
>处理重定向
>查看javascript控制台错误

希望这可以帮助.

标签:php,php-curl
来源: https://codeday.me/bug/20190928/1825522.html