[英]How can i use curl for fetch this url
我正在尝试使用来自网站的 crl 获取 a 标签,但它似乎不起作用。 它在其他网站上运行良好,但不适用于本网站:
sbplay1.c০m
我怎样才能让它工作?
<?php
//$url="https://google.com";
$url= "https://sbplay1.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIE, 'viewport=1040; _flashVersion=1');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json ', 'Accept: *'));
curl_setopt($ch,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$html = curl_exec($ch);
$dom = new DOMDocument;
$dom->loadHTML($html);
$node = $dom->getElementsByTagName('a')->item(3);
$ids = $node->getAttribute("href");
echo $ids;
?>
这是因为您尝试访问的 url 会生成一个单页应用程序 (SPA)。 这些应用程序执行 javascript 来呈现您在页面上搜索的信息。 curl 没有此信息的原因是因为它不是浏览器,因此无法执行 javascript。 js渲染后可以使用Selenium之类的东西来浏览页面。
我过去用来在 PHP 中读取 SPA 页面的流行爬虫是 Spatie。
https://github.com/spatie/crawler
您可以告诉 spatie 抓取所有页面并像使用浏览器一样呈现它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.