[脚本收集]提取Tripntale图片

自从上次从国家地理上取得图片之后,我又产生新的想法:要从Tripntale上取得照片.Tripntale是一个很不错网络相册,尤其是对那些比较喜欢旅游的同志。


按照之前在提取国家地理照片的思路:

1. 轮询每个照片的网页

Tripntale的相册目录结构是http://www.tripntale.com/pic/8238/424541,其中8343代表某个相册的ID,429749是该相册下照片的ID,可能的难点是这个相册下的ID有可能不是持续递增的。而试图去访问一个该相册不存在的ID的时候,会自动跳转回该相册,即http://www.tripntale.com/trip/8238。这里主要用到的是urllib2模块的urlopen方法得到页面的response。

page = urllib2.urlopen("http://www.tripntale.com/pic/8238/424541")
response = page.read()

2. 通过研究图片的属性,写出合适的正则表达式。

通过研究上面的图片,我们得到实际图片的html代码是:

<img src="http://s3.amazonaws.com/img.tnt/mk6gRUUpU0uRvkf9oetwswss/9tuVbgapCECOY5xtdppvUQss_l.JPG"
id="ctl00_RightContent_imageHolder"
border="0"
alt="Church in Adare" />

在这里,除了src的内容和alt的内容外,其他都是固定的,我们不关心alt的内容,所以只要专注在怎么匹配src上。

这里提供的正则表达式是:imgre = '.*s3.amazonaws.com/img\\.tnt.*/(.+?)\".*ctl00_RightContent_imageHolder.*'

3. 利用re模块的findall,得到图片的名称

result = re.findall(imgre, response, re.S)
print result

4. 保存图片到本地

这里要用到urllib模块的urlretrieve方法

posted @ 2009-09-29 16:34  小楼  阅读(545)  评论(0编辑  收藏  举报