回答
如果您下載並在http://tema.ru/travel/new-york.2011.11/檢查HTML,你看到的東西像
<img src="IMG_5072.jpg" alt="" width="1000" height="667" border="1" />
所以這個頁面是使用相對鏈接。
線
parsed[2] = image["src"]
改變parsed
從
['http', 'tema.ru', '/travel/new-york.2011.11/', '', '', '']
到
['http', 'tema.ru', 'IMG_5072.jpg', '', '', '']
,然後形成與
url = urlparse.urlunparse(parsed)
新網址
其中url
到http://tema.ru/IMG_5072.jpg
哪個不存在。 正確的網址是http://tema.ru/travel/new-york.2011.11/IMG_5072.jpg
。
我們可以與
url = urlparse.urljoin(base_url,image['src'])
該URL所以儘量
"""
http://stackoverflow.com/a/258511/190597
Author: Ryan Ginstrom
dumpimages.py
Downloads all the images on the supplied URL, and saves them to the
specified output file ("/tmp" by default)
Usage:
python dumpimages.py http://example.com/ [output]
"""
import os
import sys
import urllib
import urllib2
import urlparse
import argparse
import BeautifulSoup
def main(base_url, out_folder):
"""Downloads all the images at 'url' to out_folder"""
soup = BeautifulSoup.BeautifulSoup(urllib2.urlopen(base_url))
for image in soup.findAll("img"):
src = image['src']
print "Image: {s}".format(s=src)
_, filename = os.path.split(urlparse.urlsplit(src).path)
outpath = os.path.join(out_folder, filename)
url = urlparse.urljoin(base_url, src)
urllib.urlretrieve(url, outpath)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('url')
parser.add_argument('out_folder', nargs = '?', default = '/tmp')
args = parser.parse_args()
main(args.url, args.out_folder)
你可以在'main'完全忽略分支。 'urljoin(「http://example.org/test.png」,「http://google.com/test.png」)==「http://google.com/test.png」' – 2011-12-28 20:44:06
優秀。謝謝! – unutbu 2011-12-28 20:55:38
我複製並粘貼了你的代碼。它沒有工作! IOError [errno 2] no such file or directory:u'/tmp\\arr.gif' – DrStrangeLove 2011-12-28 22:30:56
- 1. 腳本下載CAPTCHA圖像
- 2. PHP腳本沒有完成大文件下載後
- 3. 在沒有OutOfMemoryError的情況下加載較大的圖像
- 4. webGL && jsFiddle - 沒有下載圖像
- 5. 下載的圖像沒有邊框
- 6. 圖像沒有在Android下載
- 7. 瘸子:啓動腳本沒有圖像
- 8. 通過腳本下載帶有特定Div的圖像
- 9. ASP.NET MVC 5圖像/腳本沒有在運行時加載
- 10. 圖像沒有在android 2.3.3及以上下載android版本
- 11. 的Python:下載圖像從鏈接沒有圖像擴充
- 12. 下載腳本
- 13. 腳本去獲取沒有@ 2x圖像的圖像
- 14. PHP圖像上傳腳本沒有上傳但沒有失敗
- 15. 有沒有辦法將AdventureWorksLT2012數據庫作爲腳本下載?
- 16. WatchKit沒有下載圖片
- 17. 在所有圖像被預加載之前加載腳本
- 18. 位於目錄中的圖像;圖像名稱在MySql中加載。 PHP腳本沒有返回圖像
- 19. 加載圖像而沒有重新下載或複製
- 20. PHP下載腳本
- 21. Shell下載腳本
- 22. 使用NSURLSession下載大量圖像
- 23. 用目標下載大量圖像-C
- 24. 畢加索大圖像下載
- 25. 在android下載大量圖像
- 26. 從http://images.google.ru下載大圖像
- 27. php調整大小圖像腳本
- 28. 谷歌腳本圖像調整大小
- 29. PHP圖像調整大小腳本?
- 30. HTML5畫布圖像閃爍和腳本不會等待圖像下載
你能後發生問題的示例頁面? – 2011-12-28 19:38:44
腳本失敗的示例URL如何? – 2011-12-28 19:39:05
http://tema.ru/travel/new-york.2011.11/ – DrStrangeLove 2011-12-28 19:40:32