如何使用php下载此类文件?
所以,我正在尝试从picjumbo.com网站自动下载图像。到目前为止,大多数工作都像查找img src和找到它的图像等。但当我尝试下载图像时,我得到的只是一个html文件(用notepad++打开这些文件以查看)。加载该页面后,我如何下载该文件?我把我的代码放在下面。除了得到最终的图像,一切都正常( 如何下载该图像? 文件下载页面: 页面加载后如何保存该图像 谢谢如何使用php下载此类文件?,php,web-scraping,simple-html-dom,Php,Web Scraping,Simple Html Dom,所以,我正在尝试从picjumbo.com网站自动下载图像。到目前为止,大多数工作都像查找img src和找到它的图像等。但当我尝试下载图像时,我得到的只是一个html文件(用notepad++打开这些文件以查看)。加载该页面后,我如何下载该文件?我把我的代码放在下面。除了得到最终的图像,一切都正常( 如何下载该图像? 文件下载页面: 页面加载后如何保存该图像 谢谢 <?php include("simple_html_dom.php"); $file = "http://picjum
<?php
include("simple_html_dom.php");
$file = "http://picjumbo.com/";
$files = file_get_contents($file);
$html = new simple_html_dom();
$html->load($files);
foreach($html->find('img[class=image]') as $element){
$img_src = explode('/',$element->src);
$img_src = explode('-',$img_src[5]);
$img = $img_src[0];
$url = 'http://picjumbo.com/download?d='.$img.'.jpg';
copy($url, 'images/'.$img);
}
当您尝试下载该链接而不是图像时,您会看到一个HTML页面的原因是该页面是一个HTML页面,而不是图像。如果您单击它,它会将您带到一个HTML页面而不是图像。现在,加载该页面后,它会使用HTML代码第12行的以下命令重定向您下载图像:
<meta http-equiv="refresh" content="0; url=http://picjumbo.com/wp-content/themes/picjumbofree/run.php?download&d=IMG_3642.jpg">
为了下载此图像,您必须将此HTML页面收集到一个变量中,并以某种方式对其进行解析以从中获取URL,然后使用file\u get\u contents()
下载图像。要解析图像,您可以使用类似于SimpleHTMLDOM
的东西来读入图像,或者因为您只是在寻找一个标记,如果它在文档中一致出现,您可以拉出第12行,然后使用一些创造性的substr()
获取URL的操作。URL重定向到使用Javascript开始单独下载的页面。如果您观察浏览器开发人员工具的“网络”选项卡中发生的情况,您将看到图像的实际URL为:
http://picjumbo.com/wp-content/themes/picjumbofree/run.php?download&d=$img.jpg
他正在使用简单的HTML DOM。@Barmar是的,但没有找到正确的元素。他需要找到
标记以获得正确的URL进行下载。我只是想彻底了解一下。:-)
http://picjumbo.com/wp-content/themes/picjumbofree/run.php?download&d=$img.jpg