python中的简单图像抓取

snatch的Python项目详细描述


可配置的、可扩展的python图像抓取。灵感来自Kenneth Reitz'Requests库的设计和内部。

>>>fromsnatchimportsnatch>>>images=snatch('http://octodex.github.com/pythocat/')>>>images.extensions[u'png']>>>images[1]<Image["pythocat.png"]>>>>images[1].urlu'http://octodex.github.com/images/pythocat.png'

易于使用,易于配置:

>>>url='url/with/54/images'>>>snatch(url)<ImageList[54]># reduce your results by extension:>>>_.with_extension('gif')<ImageList[2]># or more explicitly limit your extension in the inital api call:>>>snatch(url,with_extension=('gif',))<ImageList[2]>

将自己的过滤器或操作挂接到scrap的回调系统中也非常容易。假设您只想捕获宽度大于250像素的图像:

importrequestsimportImagefromStringIOimportStringIOfromsnatchimportsnatchdefwider_than_250(images):deffilter_fn(image):ifimage.widthisNone:res=requests.get(image.src)img=Image.open(StringIO(res.content))image.width=img.size[0]returnimage.width>250returnfilter(filter_fn,images)url='http://octodex.github.com/images/pythocat.png'callbacks={'complete':wider_than_250}images=snatch(url,callbacks=callbacks)

从url下载所有图像更加简单:

importosimportrequestsfromsnatchimportsnatchdirectory='snatched-images'ifnotos.path.exists(directory):os.mkdir(directory)forimageinsnatch('http://octodex.github.com/pythocat/'):contents=requests.get(image.url).contentwithopen('%s/%s'%(directory,image.filename),'w')asimage_file:image_file.write(contents)

发布历史记录

0.1.0(2013-10-12)

  • 初始写入/脚手架,需要修复/改进的部分

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
空间计数器在Java中不起作用   json在java中表示XPath列表的最佳方式   java报警服务接收器安卓   java注入bean在自定义的all存储库中   java从迁移到Spring MVC 4+Hibernate5   JavaEclipseIDE透视图被缓存,更改没有任何影响   java Hibernate:在将对象插入Derby嵌入式数据库时引发SQLGrammerException   适用于mp4或mp3文件的java Exoplayer自动流媒体质量   安卓如何在java的静态方法中使用这个关键字?   SSL服务器端的spring主机名验证+Tomcat和Java 8   java Eclipse强制刷新IDs   java有可能返回Mono。只是从GetMapping(“/”)处理程序中获取(“索引”)吗?   arraylist当我用java编程时,我遇到了这个错误,有人能告诉我到底出了什么问题吗?   java如何更改Apache CXF web服务中的日期时间格式   Jfoenix ChipView中的java多线程   java任务在Spark上不可序列化