2012-07-27 63 views
2

我有以下圖像的HTML和我想解析信息是在ALT。目前我能夠成功提取圖像。BeautifulSoup:提取img的數據

HTML(我目前解析

<img class="rslp-p" alt="Sony Cyber-shot DSC-W570 16.1 MP Digital Camera - Silver" src="http://i.ebayimg.com/00/$(KGrHqZ,!j!E5dyh0jTpBO(3yE7Wg!~~_26.JPG?set_id=89040003C1" itemprop="image" /> 

我構建從我解析圖像名稱:

目前代碼

def main(url, output_folder="~/images"): 
     """Download the images at url""" 
     soup = bs(urlopen(url)) 
     parsed = list(urlparse.urlparse(url)) 
     count = 0 
     for image in soup.findAll("img"): 
      print image 
      count += 1 
      print count 
      print "Image: %(src)s" % image 
      image_url = urlparse.urljoin(url, image['src']) 
      filename = image["src"].split("/")[-1].split("?")[0].replace("$",'').replace(".JPG",".jpg").replace("~~_26",str(count)).lstrip("(") 
      parsed[2] = image["src"] 
      outpath = os.path.join(output_folder, filename) 
      urlretrieve(image_url, outpath) 

我想這樣做的是提取物

alt="Sony Cyber-shot DSC-W570 16.1 MP Digital Camera - Silver" 

我也想在提取圖像時使用alt數據作爲文件名。

+1

您正在使用'image ['src']'獲取源代碼。你不能只用'image ['alt']'來獲得alt,還是我誤解了你的問題? – BrtH 2012-07-27 23:14:35

回答

7

裏面你for循環,你可以簡單地做

image.get('alt', '') 

這在BeautifulSoup's documentation解釋(「標籤的屬性」)獲得。

+0

這就是我也這麼認爲,但我得到的關鍵錯誤。 – 2012-07-27 23:27:12

+2

關鍵錯誤意味着特定的img標籤沒有alt屬性。你確定頁面上的每個圖像都有與它相關的替代文字嗎? – larissa 2012-07-27 23:31:50

+0

編輯答案,它應該爲案件工作@anyaMairead提及 – 2012-07-27 23:33:51