2014-02-07 20 views
0

因此,我試圖自動從picjumbo.com網站下載圖像。到目前爲止,大部分工作都像查找img src並找到它的圖像等。但是當我嘗試下載圖像時,我得到的只是一個html文件(open那些帶notepad ++的文件來查看它)。我怎樣在加載頁面後下載文件?我把我的代碼放在下面。除了獲得最終圖像以外,所有的東西都可以工作! :(如何使用php下載這種類型的文件?

如何下載圖像 文件下載頁面:http://picjumbo.com/download/?d=IMG_3642.jpg 我如何保存圖像頁面加載後??

感謝

<?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); 
} 

回答

0

你的理由!當您嘗試下載該鏈接而不是圖像時,獲取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"> 

所以URL形象是這樣的:

http://picjumbo.com/wp-content/themes/picjumbofree/run.php?download&d=IMG_3642.jpg 

爲了下載這張圖片,你必須爲此HTML網頁收集到一個變量,並通過它以某種方式搶解析從此URL,然後使用file_get_contents()下載圖像。通過這個解析,你可以使用像SimpleHTMLDOM這樣的東西來讀取它,或者因爲你只是在尋找一個標籤,如果它在文檔中一直出現,你可以只是拉出第12行,然後使用一些創意substr()行動來獲取網址。

+0

他使用簡單的HTML DOM。 – Barmar

+0

是啊!謝啦! :) – Mixin

+0

@Barmar是的,但沒有找到合適的元素。他需要找到''標籤來獲得正確的URL下載。我只是想徹底。 :-) –

1

URL重定向到使用Javascript開始單獨下載的頁面。如果您觀察瀏覽器開發工具的「網絡」選項卡中發生的情況,您會看到圖像的實際URL爲:

http://picjumbo.com/wp-content/themes/picjumbofree/run.php?download&d=$img.jpg