CURL 和 PHP 带有对象的简单 HTML DOM 解析器

CURL and PHP Simple HTML DOM Parser with object

提问人:GaraGulp 提问时间:5/30/2023 最后编辑:RiggsFollyGaraGulp 更新时间:5/30/2023 访问量:110

问:

使用 CURL 和 Simple HTML DOM Parser 从网站获取内容。在对象中获取响应。我正在使用它从本网站的产品页面获取所有图像的链接 https://www.geekbuying.com/ 它适用于大多数页面,例如这个页面 https://www.geekbuying.com/item/eufy-MACH-V1-Cordless-Vacuum-Cleaner-520574.html

对于其他页面,它们实际上是相同的,它什么也得不到,我只是不知道为什么。例如,这个 https://www.geekbuying.com/item/eufy-Clean-G40-Hybrid--Robot-Vacuum-Cleaner-520591.html

include "simple_html_dom.php";
$link = "https://www.geekbuying.com/item/eufy-Clean-G40-Hybrid--Robot-Vacuum-Cleaner-520591.html"; //don't works

$link = "https://www.geekbuying.com/item/eufy-MACH-V1-Cordless-Vacuum-Cleaner-520574.html"; //works


function get_content($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $htmlContent = curl_exec($ch);
    curl_close($ch);
    $dom = new simple_html_dom();
    $dom->load($htmlContent);
    foreach($dom->find('img') as $element){
        $immagine = $element->src;
        echo "$immagine <br />";
    }
}

get_content($link);

该脚本应该允许我获取外部页面中所有图像的链接,但对于某些图像,它不起作用。

php 图像 解析 curl dom

评论

2赞 RiggsFolly 5/31/2023
也许他们不希望您在未经许可的情况下抓取他们的网站
0赞 GaraGulp 5/31/2023
嗨,我不认为这是原因。页面具有完全相同的结构,只是从数据库中提取的内容发生了变化。
2赞 ADyson 5/31/2023
那么你做了什么调试呢?“什么也得不到”对我们来说不是一个有用的描述。你的意思是你根本没有从页面返回任何 HTML?或者只是你找不到你想要的特定项目?您是否检查了对 cURL 请求的原始响应?从描述中并不清楚您将问题缩小到什么。
0赞 Chris Haas 5/31/2023
要重述内容,通常会遇到 cURL 问题或 XML 问题,但很少(或可能永远不会)两者兼而有之。
0赞 Kazz 5/31/2023
网站很大,可能是内存不足的问题,请启用错误报告。我讨厌自己这么说,但你可以使用正则表达式进行如此简单的“解析”

答: 暂无答案