Python3通过request.urlopen实现Web网页图片下载
1)post是被设计用来向web服务器上放东西的,而get是被设计用来从服务器取东西的,get也能够向服务器传送较少的数据,而get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.post的信息作为http 请求的内容,而get是在http 头部传输的;
2)POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;
3)POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;
4)GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M
Cookies现在经常被大家提到,那么到底什么是Cookies,它有什么作用 呢?
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站 时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。
当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。
保存的信息片断以“名/值”对(name-value pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。
一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。
Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。
要实现的主要功能点:
解析网页中的图片链接
对图片链接进行内容 iis7站长之家,如果图片格式 图片大小不符合要求,则不下载
自动文件名提取,从图片链接直接提取文件名
Python3通过Web网页图片下载参考代码:
from urllib import request import threading from time import sleep,ctime from html import parser def downjpg( filepath,FileName ="default.jpg" ): try: web = request.urlopen( filepath) print("访问网络文件"+filepath+"n") jpg = web.read() DstDir="E:\image\" print("保存文件"+DstDir+FileName+"n") try: File = open( DstDir+FileName,"wb" ) File.write( jpg) File.close() return except IOError: print("errorn") return except Exception: print("errorn") return def downjpgmutithread( filepathlist ): print("共有%d个文件需要下载"%len(filepathlist)) for file in filepathlist: print( file ) print("开始多线程下载") task_threads=[] #存储线程 count=1 for file in filepathlist: t= threading.Thread( target=downjpg,args=(file,"%d.jpg"%count) ) count=count+1 task_threads.append(t) for task in task_threads: task.start() for task in task_threads: task.join() #等待所有线程结束 print("线程结束") class parserLinks( parser.HTMLParser): filelist=[] def handle_starttag(self,tag,attrs): if tag == 'img': for name,value in attrs: if name == 'src': print( value) self.filelist.append(value) #print( self.get_starttag_text() ) def getfilelist(self): return self.filelist def main(WebUrl): #globals flist if __name__ == "__main__": lparser = parserLinks() web = request.urlopen( WebUrl ) #context= web.read() for context in web.readlines(): _str="%s"%context try: lparser.feed( _str) except parser.HTMLParseError: #print( "parser error") pass web.close() imagelist= lparser.getfilelist() downjpgmutithread( imagelist) #downjpgmutithread( flist) #WebUrl="http://www.baidu.com/" #要抓去的网页链接,默认保存到e盘 WebUrl="http://hi.baidu.com/yuyinxuezi/item/df0b59140a06be27f6625cd4" main(WebUrl)
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 gvim7.3支持python3的问题 在Python3中使用urllib实现http的get和post提交数据操作 新装python3在Ubuntu中左右键显示乱码 Python3实现生成随机密码的方法 python3编写C/S网络程序实例教程 python3.3实现乘法表示例 python3.0 字典key排序 一则python3的简单爬虫代码 Python3实现的腾讯微博自动发帖小工具 python3使用urllib示例取googletranslate(谷歌翻译) Python3实现连接SQLite数据库的方法 让python同时兼容python2和python3的8个技巧分享 python3图片转换二进制存入mysql python3访问sina首页中文的处理方法 python3.3教程之模拟百度登陆代码分享 python3使用tkinter实现ui界面简单实例 Mac OS X10.9安装的Python2.7升级Python3.3步骤详解 Python3.0与2.X版本的区别实例分析 python3.3使用tkinter开发猜数字游戏示例