#coding=gbk
import urllib
import urllib2
import re
import os
import time
# import readline

def getHtml(url):
    #一些网站限制浏览器访问,python模拟浏览器
    heads = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Charset':'GB2312,utf-8;q=0.7,*;q=0.7',
            'Accept-Language':'zh-cn,zh;q=0.5',
            'Cache-Control':'max-age=0',
            'Connection':'keep-alive',
            'Host':'John',
            'Keep-Alive':'115',
            'Referer':url,
            'User-Agent':'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.14) Gecko/20110221 Ubuntu/10.10 (maverick) Firefox/3.6.14'}
 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
    urllib2.install_opener(opener)
    req = urllib2.Request(url)
    opener.addheaders = heads.items()
    respHtml = opener.open(req).read()
    # return respHtml.decode('gbk').encode('utf-8')
    return respHtml

def getImg(html):
#     reg = r'input src=\'*(.*?\.jpg)'
    reg = r'src="(.+?\.jpg)"'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)
    # print(imglist)
    # return 1
    x = 0
    #生成临时目录存储
    createDir = 'getpic'+time.strftime('%Y%m%d%H%M%S')
    if not os.path.isdir(createDir) and not os.path.isfile(createDir):
       os.mkdir(createDir)
    # print(os.getcwd())
    os.chdir(createDir)
    # print(os.getcwd())
    for imgurl in imglist:
        print("正在抓取图片:"+imgurl)
        urllib.urlretrieve(imgurl,'%s.jpg' % x)
        x+=1
       
# readline.parse_and_bind("control-v: paste")
website = raw_input("please input website:")

html = getHtml(website)
# print(html)
getImg(html)

最近学习python,参考网上的资料做了抓图程序,目前还有以下几点要完善

1. 如何支持界面输入,比如支持多个 选项,输入多个url

2. 支持匹配列表,发现有些网站的匹配规则不一致,导致不能通用

3. winpython不支持readline模块,导致py2exe生成的cmd窗口需要设置后,才能粘贴网址

如果使用py2exe生成一个通用的exe文件

在工作目录创建文件 create.py,内容如下

from py2exe.build_exe import py2exe
from distutils.core import setup
from glob import glob 
import py2exe
import os, sys
import shutil
 
if len(sys.argv) == 1:
    sys.argv.append("py2exe")
     
includes = ["encodings", "encodings.*"]
options = {"py2exe": 
             {   "compressed": 1, 
                 "optimize": 2, 
                 "includes": includes, 
                 "dist_dir": "bin",
                 "bundle_files": 1 
             } 
           } 
setup(    
     version = "1.0", 
     description = u'To grab pictures',
     name = "grabpic1.0.00", 
     options = options, 
     zipfile = None, 
     console=[{"script": "grabpic1.0.00.py"}],   
     data_files=[]
     )
os.remove("bin//w9xpopen.exe")    
# shutil.rmtree("build")

使用命令python create.py py2exe ,生成文件后,在bin/grabpic1.0.00.exe

运行grabpic1.0.00.exe ,右键设置 看到中间有个插入模式,勾选,然后cmd窗口就可以贴图了。

PS:第一次写,不知道如何贴图,悲催

参考帖子:

http://blog.csdn.net/txg703003659/article/details/30459475

http://blog.csdn.net/linda1000/article/details/12909439

基于python做的抓图程序1.0.00版本的更多相关文章

  1. 一个基于python的即时通信程序

    5月17日更新: 广播信息.用户列表.信息确认列表以及通信信息,从原来的用字符串存储改为使用字典来存储,使代码更清晰,更容易扩展,具体更改的格式如下: 广播信息(上线): { 'status': 信息 ...

  2. 基于python的图片修复程序-可用于水印去除

    图片修复程序-可用于水印去除 在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以 ...

  3. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 目录 1. 开发环境2. 主要功能逻辑介绍3. 框架功能简介 4. 数据库的创建 5. 框架模块详细介绍6. Tes ...

  4. 每日一帖示例程序(使用TWebBrowser基于HTML做)

    最近在程序中增加了每日一帖的功能,搜索一下网站的程序,发现大部分是用Memo实现,而我用的是TWebBrowser基于HTML做,故帖出来共享一下. PAS源码: unit Unit1; interf ...

  5. 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  6. What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。

    原文链接 Github地址 一.陈述 1,我到底能用Python做什么? 我观察注意到Python三个主要流行的应用: 网站开发: 数据科学——包括机器学习,数据分析和数据可视化: 做脚本语言. 二. ...

  7. Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析

    爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...

  8. 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]

    基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]   by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...

  9. 从0开始学正则表达式-基于python

    关于正则表达式,当我们了解它就不难,不了解就很难,其实任何事情都是这样,没有人一生下来就啥都会,说白了,每个人都是一个学习了解进步的过程.学习和掌握正则表达式可能并不是太简单,因为它确实是有点像“外星 ...

随机推荐

  1. Linux 上不可修改的文件和目录

         有时候我们需要让一个我们自己的目录中的内容不能变动,也就是不允许其他人随便删改我们的目录和目录中的文件.这里,首先,我们需要知道两个概念,文件的粘滞位和属性.       文件如果设置了粘滞 ...

  2. DocX组件读取与写入Word

    本文转载:http://www.cnblogs.com/yanweidie/p/3861482.html 由于上周工作比较繁忙,所以这篇文章等了这么久才写(预告一下,下一个章节正式进入NVelocit ...

  3. Win8控制面板快捷键

    Win8系统相比我们已经熟悉的Win7与XP系统有着一些特殊的变化,导致很多初次使用Win8系统的朋友感觉有点吃力,随着Win8系统即将于几天后正式发布,下面本文与大家分享大家比较关心的Win8控制面 ...

  4. Excel中如何查找并列出所有链接(外部数据链接)?

    在 Excel 中,有时会需要创建外部链接来引用其他工作簿的单元格内容,但是如果想要找出所有链接并且还要将这些外部数据链接列在一个工作簿当中是有点难度的.下面我会介绍一些快捷方法,不仅能够快速帮你找出 ...

  5. ngnix apache tomcat集群负载均衡配置

    http://w.gdu.me/wiki/Java/tomcat_cluster.html 参考: Tomcat与Apache或Nginx的集群负载均衡设置: http://huangrs.blog. ...

  6. .h头文件 .lib库文件 .dll动态库文件之间的关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

  7. springmvc 返回xml

    需求: 1.springmvc返回xml: 技术及环境: Spring 4.3.1.RELEASE JDK 1.8 IDEA 15.0.6 Maven 3 实现: spirngxml的配置主要如下: ...

  8. hdu2030java

    汉字统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio ...

  9. Oracle创建存储过程、执行存储过程基本语法

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  10. Mysql内存表的用处

    文章出自:http://blog.csdn.net/hitzhang/article/details/5994639 个人最欣赏mysql的地方就是他存储引擎的多样性和可扩展性,这样mysql也能拥有 ...