我正在使用curl从外部网页的html源代码中获取图像。我在Firefox中的查看页面源上获得了 img original='imageurl'
。但是,当我选择特定图片时,它会在Firefox中的视图选择源上显示 img src='imageurl'
。
如何使用curl获取此类图像?
目前我正在使用正则表达式获取图片:
preg_match_all('/<img[^>]+>/i',$output, $result);
print_r($result);
但它不显示任何图像。
我很担心这里要做什么。有人有什么想法吗?
答案 0 :(得分:3)
我很担心这里要做什么。
混淆可能是因为您使用webbrowser来查看URL的来源。即使通常情况下,webbrowser显示的页面源也是卷曲也会返回的数据,但情况并非总是如此。
特别是Firefox功能视图选择源不会显示原始资源中的选择,但通常会显示其他内容。为防止这种情况,您需要disable javascript in your Firefox browserDocs。因为经常使用javascript修改文档并且你想看原文,而不是修改因为curl不能运行javascript,所以它只能得到“原版”。
有人有任何想法吗?
答案 1 :(得分:1)
您的网络浏览器根据HTML理解/解析HTML页面的方式重新格式化HTML。
当您选择“查看页面来源”时,它会显示从服务器提供的原始源代码。
当您选择内容并选择“查看选择源”时,它会显示浏览器已解析为所选内容的DOM(浏览器理解的内容)。
我猜你正在使用Firefox
如果您尝试使用cURL处理从服务器提供的HTML,则不得查看页面的“查看选择源”,始终参考“查看页面源“ ..
<强>最终强>
您应该参考来自cURL的ACTUAL结果
例如:
$content = curl_exec($ch);
header("Content-type: text/plain");
echo $content;
这应该恰好回应了cURL从服务器收到的内容......
注意:这是https://stackoverflow.com/questions/8754844/can-not-get-images-using-curl
的重新发布<强>此外强>
如果要在<img src="">
标记内获取实际图像,则需要使用preg_match在结果HTML响应中指向IMG标记,并对IMG SRC执行单独的cURL请求