python如何抓取图片数据_python的简单抓取图片
python如何抓取图⽚数据_python的简单抓取图⽚
在我们⽇常上⽹浏览⽹页的时候,经常会看到⼀些好看的图⽚,我们就希望把这些图⽚保存下载,或者⽤户⽤来做桌⾯壁纸,或者⽤来做设计的素材。
我们最常规的做法就是通过⿏标右键,选择另存为。但有些图⽚⿏标右键的时候并没有另存为选项,还有办法就通过就是通过截图⼯具截取下来,但这样就降低图⽚的清晰度。好吧~!其实你很厉害的,右键查看页⾯源代码。
我们可以通过python 来实现这样⼀个简单的爬⾍功能,把我们想要的代码爬取到本地。下⾯就看看如何使⽤python来实现这样⼀个功能。
⼀,获取整个页⾯数据
⾸先我们可以先获取要下载图⽚的整个页⾯信息。
getjpg.py
#coding=utf-8
空气炸锅好用么
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = ad()
return html
html = getHtml("tieba.baidu/p/2738151262")
print html
Urllib 模块提供了读取web页⾯数据的接⼝,我们可以像读取本地⽂件⼀样读取www和ftp上的数据。⾸先,我们定义了⼀个getHtml()函数:
urllib.urlopen()⽅法⽤于打开⼀个URL地址。
read()⽅法⽤于读取URL上的数据,向getHtml()函数传递⼀个⽹址,并把整个页⾯下载下来。执⾏程序就会把整个⽹页打印输出。
⼆,筛选页⾯中想要的数据常常的反义词
Python 提供了⾮常强⼤的正则表达式,我们需要先要了解⼀点python 正则表达式的知识才⾏。
修改代码如下:
import re
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = ad()
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
银婚纪念日imgre = repile(reg)
imglist = re.findall(imgre,html)六一节祝福语
return imglist
html = getHtml("tieba.baidu/p/2460150866")
print getImg(html)
我们⼜创建了getImg()函数,⽤于在获取的整个页⾯中筛选需要的图⽚连接。re模块主要包含了正则表达式:
repile() 可以把正则表达式编译成⼀个正则表达式对象.
re.findall() ⽅法读取html 中包含 imgre(正则表达式)的数据。
运⾏脚本将得到整个页⾯中包含图⽚的URL地址。
三,将页⾯筛选的数据保存到本地
把筛选的图⽚地址通过for循环遍历并保存到本地,代码如下:
#coding=utf-8
import urllib
import re
def getHtml(url):
page = urllib.urlopen(url)
2022年立秋几时几分html = ad()
return html
def getImg(html):
6g研发中国开跑reg = r'src="(.+?\.jpg)" pic_ext'
imgre = repile(reg)
imglist = re.findall(imgre,html)
x = 0
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
html = getHtml("tieba.baidu/p/2460150866")
print getImg(html)
这⾥的核⼼是⽤到了urllib.urlretrieve()⽅法,直接将远程数据下载到本地。
通过⼀个for循环对获取的图⽚连接进⾏遍历,为了使图⽚的⽂件名看上去更规范,对其进⾏重命名,命名规则通过x变量加1。保存的位置默认为程序的存放⽬录。
程序运⾏完成,将在⽬录下看到下载到本地的⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。