python3爬取网络图片的两种常见方法
2018-03-10 11:51
561 查看
以前在python2.7上用爬虫爬取一些文本,但是没爬取过图片,python2中部分库在py3中已经没了(urllib2被改成 urllib.request)。这两天在想爬取一些图片,就在python3上用两种方来爬取网络图片。代码如下:
以上是第一种常见的爬取方式。
这是第二种方法
# -*- coding:utf-8 -*- import urllib import urllib.request import re def getHtml(url): request = urllib.request.Request(url) response = urllib.request.urlopen(request) html = response.read() return html def getImg(html): reg = 'src="(.+?\.jpg)"' #正则表达式 imgre = re.compile(reg) imglist = re.findall(imgre, html.decode('utf-8')) x = 1 for imgurl in imglist : urllib.request.urlretrieve(imgurl,'%s.jpg' % x) # 设置了要下载的图片资源路径和要命名的名字 print('正在下载第%s张图片' % x) x+=1 if x>6: #设置爬取图片的张数 break return None html = getHtml("http://tieba.baidu.com/p/5577092638") getImg(html)
以上是第一种常见的爬取方式。
# -*- coding:utf-8 -*- # import urllib import urllib.request import re def download_page(url): headers = {'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64;' ' Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;' ' Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)'} request = urllib.request.Request(url,headers=headers) response = urllib.request.urlopen(request) data = response.read() return data def get_image(html): regx ='src="(.+?\.jpg)"' imgre = re.compile(regx) imglist = re.findall(imgre,html.decode('utf-8')) # py3的urlopen返回的不是string是bytes。html用decode(‘utf-8’)进行解码,由bytes变成string。 num =1 for imgurl in imglist: image = download_page(imgurl) #重新解析每个图片的链接,返回bytes类型 with open('%s.jpg' % num,'wb') as fp: #以二进制+写文件 形式打开一个.jpg文件 fp.write(image) #写文件 print('正在下载第%s张图片' % num) num +=1 return url = 'http://tieba.baidu.com/p/5577092638' html = download_page(url) get_image(html)
这是第二种方法
相关文章推荐
- android客户端加载网络大图片如何避免内存溢出的两种方法
- python 学习系列(3) 读取并显示图片的两种方法
- 【Android】Web开发之显示网络图片的两种方法
- python 读取并显示图片的两种方法
- python 读取并显示图片的两种方法
- python 读取并显示图片的两种方法
- python 读取并显示图片的两种方法
- python使用PIL缩放网络图片并保存的方法
- python 读取并显示图片的两种方法
- vb picturebox 加载网络图片的两种方法,分无缓存加载和有缓存加载
- 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码
- python 读取并显示图片的两种方法
- Python读取并显示图片的两种方法
- python使用Tkinter显示网络图片的方法
- python 读取并显示图片的两种方法
- Python在图片中添加文字的两种方法
- python-网络图片下载(两种方式)
- python从网络读取图片并直接进行处理的方法
- python 读取并显示图片的两种方法 4000
- Python中执行系统命令常见方法有两种: