php - cURL 不加载样式/css

标签 php html css curl

所以我有这个非常简单的 cURL 代码,它应该检索页面的数据...好吧,它实际上确实显示了页面的内容... < strong>有时,而且大多数时候样式都乱七八糟,因为字体没有加载,大多数图像和图形元素也没有加载。如果我更改要显示的页面的 URL,结果会有所不同,有些加载没问题,有些则根本不显示任何内容

我猜 cURL 处理 css 的方式有问题,我怎样才能让它正确加载它?

<?php
    $ch = curl_init();

    $url = 'http://3amigos.com.mx/';

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (http://www.googlebot.com/bot.html)');
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);

    $data = curl_exec($ch);

    echo $data;
?>
ABCDEF

就像现在一样,有时它甚至不加载任何格式的 ABCDEF 以外的任何内容,有时页面完全是空的。

最佳答案

当您使用 curl 发送 http 请求时,curl 获取响应并将其提供给您。 如果响应嵌入了样式,您可以使用 YOU BROWSER NOT ON/WITH CURL 显示此应用。 但是 如果样式/资源在属性 src 上有完整的 URI , href ,您可以看到应用此ON YOU BROWSER NOT ON/WITH CURL

Curl is not a interpreter HTML, JS, CSS.

Curl 只是使用 HTTP、HTTPS 等各种协议(protocol)传输数据的命令行......

您可能需要了解 PhantomJSSelenium .

另一个解决方案(太慢)是获取响应并解析它以找到所有 <link> (css 样式链接)打开并获取内容并将其嵌入...(我认为这是个坏主意,但可行)

关于php - cURL 不加载样式/css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354248/

相关文章:

php - json_encode 不工作 uft8 内容 php

javascript - 计算日期时的时间数学问题

javascript - 根据宽度调整绝对div的位置

Javascript 尽管 ID 不同,但只有第一个按钮提交到 Ajax 表单

php - 替换文件中的一行而不重写整个文件(在 PHP 中)

具有数百万个单元格的 HTML 表格会忽略单元格的固定尺寸

html - 如何创建空格以替换代码中的白色

javascript - 单击其内容时 Materialise UI 下拉菜单关闭

javascript - 如何根据图像中显示的百分比进行星级评定?

php - 使用数组值作为查询中的 where 子句并递增查询的编号 php