2017-10-07 9 views
0

私はBeautiful Soupの学習に取り組んでいます。ローカルディレクトリからアップロードされた画像を削り取ろうとしているときに問題に遭遇しています。私は見ていますエラーは次のとおりです。私が起こっていると仮定すると、画像がローカルディレクトリからロードされたされ、URLによってホストされていませんローカルに読み込まれた画像を掻き集める

ValueError: unknown url type: 'images/ixa2.png' 

。これは私が私がこすりしようとしています要素を検査するとき、それは次のようになります。

<img width="200" align="left" hspace="0" src="ixa/cards/axisofmortality.jpg"> 

私はこれらのイメージをこすりすることが可能である場合には好奇心旺盛だし、もしそうなら、どのように。ここで

は、私が働いているコードです:

from urllib import request 
import urllib.request 
from bs4 import BeautifulSoup as soup 

def make_soup(url): 
    result = request.urlopen(url) 
    page = result.read() 

    parsed_page = soup(page, "html.parser") 
    result.close() 
    return parsed_page 

def get_images(url): 
    soup = make_soup(url) 
    images = [img for img in soup.findAll('img')] 
    print (str(len(images)) + "images found.") 
    print('Downloading images to current working directory.') 
    #compile our unicode list of image links 
    image_links = [each.get('src') for each in images] 
    for each in image_links: 
     filename=each.split('/')[-1] 
     urllib.request.urlretrieve(each, filename) 
    return image_links 

get_images('http://mythicspoiler.com/') 

答えて

1

あなたが不完全なURLからイメージをダウンロードしようとしています。

私の提案は、このようなものです:

def get_images(url): 
    soup = make_soup(url) 
    images = [img for img in soup.findAll('img')] 
    print (str(len(images)) + "images found.") 
    print('Downloading images to current working directory.') 
    #compile our unicode list of image links 
    image_links = [each.get('src') for each in images] 
    for each in image_links: 
     filename=each.split('/')[-1] 
     urllib.request.urlretrieve('http://mythicspoiler.com/' + each, filename) # <--- 
    return image_links 
+0

シンプルで効果的な、ありがとう。 – Bonteq

関連する問題