Python使用urllib2来scape图像?

时间:2012-08-10 03:55:27

标签: python screen-scraping jpeg

我正在抓取http://apod.nasa.gov/当天的形象。到目前为止,我已经能够返回我认为是图像源标签的内容。

#!/usr/bin/env python
from urllib2 import urlopen
from BeautifulSoup import BeautifulSoup

class Apod:
    def apod_wallpaper(self):
        self.soup = BeautifulSoup(urlopen('http://apod.nasa.gov/').read())
        self.pic = self.soup.find('img')
        return self.pic


print Apod().apod_wallpaper()


>>> ./apod.py

>>> <img src="image/1208/Ma2011-2Tezel900.jpg" name="imagename1" alt="See Explanation.
Moving the cursor over the image will bring up an annotated version.
Clicking on the image will bring up the highest resolution version
available." />

我不确定如何从这里下载实际的 .jpg

2 个答案:

答案 0 :(得分:4)

第1步:阅读HTML文件。

第2步:从找到的图像中提取src属性。将域http://apod.nasa.gov/srcimage/1208/Ma2011-2Tezel900.jpg连接起来,以提供用于获取图像的URL。

步骤3:在其上运行urlopen(...).read(),并将其写入文件


例如:

data = urlopen('http://apod.nasa.gov/image/1208/Ma2011-2Tezel900.jpg').read()
open('mypic.jpg', 'wb').write(data)

答案 1 :(得分:3)

你想要urlparse.urljoin()

>>> urlparse.urljoin('http://apod.nasa.gov/', 'image/1208/Ma2011-2Tezel900.jpg')
'http://apod.nasa.gov/image/1208/Ma2011-2Tezel900.jpg'