花瓣网抓取图片脚本

最早关注的不是花瓣网,是topit.me,这个网站不错,格调很高雅。

后来听说了Pinterest,然后是国内的花瓣网。花瓣网上主题,分类比较明确,看了页面, 组织也整齐,于是写了个花瓣网的图片抓取脚本。

其中有一个小问题,就是抓取的专辑beauty页面中,由于它是下拉刷新加载页面的,使用 urlretrieve不能下载下来,只能借助外部的curl了。有高手能解决的,还请不吝赐教。

代码下载地址: https://gist.github.com/1956744

内容不多,直接贴下:

#!/usr/bin/env python
# -*- coding: utf8 -*-
# author: amoblin <amoblin@163.com>

import sys, re, urllib2, os, urllib

beauty_url = "http://huaban.com/favorite/beauty/"
pin_re = '<a href="/pins/(.+?)/"'

def get_img_url(pin):
pin_url = "http://huaban.com/pins/%s/" % pin
img_url_re = '<img alt="采集图片" src="(.+?)"'
pg = urllib2.urlopen(pin_url)
content = pg.read()
pg.close()
img_url = re.findall(img_url_re, content)[0]
return img_url

if __name__ == "__main__":
if len(sys.argv) < 2:
local_path = "./huaban"
else:
local_path = sys.argv[1]

if not os.path.exists(local_path):
try:
os.makedirs(local_path)
except e:
print e
sys.exit(1)

print "pin images will saved to: %s" % local_path

os.system("curl -s %s -o /tmp/huaban.html" % beauty_url)
content = open("/tmp/huaban.html").read()

pins = re.findall(pin_re, content)[1:]
for pin in pins:
img_url = get_img_url(pin)
print "saving pin: %s" % pin
urllib.urlretrieve(img_url, "%s/%s.jpeg" % (local_path, pin))
tagged by
comments powered by Disqus