使用 php curl 抓取动态加载的网站
Scraping a dynamically loading website with 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 ,这里是 link http://jonnnnyw.github.io/php-phantomjs/。这将解决您的问题。它具有以下特点:
- 通过 PhantomJS 无头浏览器加载网页
- 查看详细的响应数据,包括页面内容、headers、状态码等
- 处理重定向
- 查看javascript 控制台错误
希望对您有所帮助。
我是爬虫新手,正式爬过两个网站。但是当我试图抓取动态加载网站时,问题出现了。当网站以 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 ,这里是 link http://jonnnnyw.github.io/php-phantomjs/。这将解决您的问题。它具有以下特点:
- 通过 PhantomJS 无头浏览器加载网页
- 查看详细的响应数据,包括页面内容、headers、状态码等
- 处理重定向
- 查看javascript 控制台错误
希望对您有所帮助。