python页面 页面中传递一个img地址怎么办

Posts - 287,
Articles - 1,
Comments - 2984
大人不华,君子务实。
00:18 by 虫师, ... 阅读,
  在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。
  我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。
  我们可以通过来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用来实现这样一个功能。
一,获取整个页面数据
首先我们可以先获取要下载图片的整个页面信息。
#coding=utf-8
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
html = getHtml("/p/")
print html
  Urllib&模块提供了读取页面数据的接口,我们可以像读取本地文件一样读取www和上的数据。首先,我们定义了一个函数
  urllib.urlopen()方法用于打开一个地址。
  read()方法用于读取上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。
二,筛选页面中想要的数据
  Python&提供了非常强大的正则表达式,我们需要先要了解一点正则表达式的知识才行。
假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:pic_ext=&jpeg&
修改代码如下:
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
return imglist
html = getHtml("/p/")
print getImg(html)
  我们又创建了函数,用于在获取的整个页面中筛选需要的图片连接。模块主要包含了正则表达式:
  re.compile()&可以把正则表达式编译成一个正则表达式对象.
  re.findall()&方法读取中包含&(正则表达式)的数据。
&  &运行脚本将得到整个页面中包含图片的地址。
三,将页面筛选的数据保存到本地
把筛选的图片地址通过循环遍历并保存到本地,代码如下:
#coding=utf-8
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
html = getHtml("/p/")
print getImg(html)
  这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。
  通过一个循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过变量加。保存的位置默认为程序的存放目录。
程序运行完成,将在目录下看到下载到本地的文件。没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。
今天逛贴吧看见好多美图,可是图片有点多,不想一张一张地复制粘贴,怎么办呢?办法总是有的,即便没有我们也可以创造一个办法。
下面就看看我今天写的程序:
#coding=utf-8
#urllib模块提供了读取Web页面数据的接口
import urllib
#re模块主要包含了正则表达式
#定义一个getHtml()函数
def getHtml(url):
page = urllib.urlopen(url)
#urllib.urlopen()方法用于打开一个URL地址
html = page.read() #read()方法用于读取URL上的数据
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
#正则表达式,得到图片地址
imgre = re.compile(reg)
#re.compile() 可以把正则表达式编译成一个正则表达式对象.
imglist = re.findall(imgre,html)
#re.findall() 方法读取html 中包含 imgre(正则表达式)的
#把筛选的图片地址通过for循环遍历并保存到本地
#核心是urllib.urlretrieve()方法,直接将远程数据下载到本地,图片通过x依次递增命名
for imgurl in imglist:
urllib.urlretrieve(imgurl,'D:\E\%s.jpg' % x)
html = getHtml("/p/xxxx")
print getImg(html)
运行程序后,下面就是见证奇迹的时刻,打开对应文件夹:
哇!图片全部保存了下来,so nice!&&&&&:-)
阅读(...) 评论()在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
request是不能获取到前端标签的属性的。如果是为了在后端获取img的src地址,需要你再前端通过表单提交或者URL传参的方式,你可以在form表单项里增加一个隐藏字段,后端用request.form.get获取。
&form action="此处提交表单的地址" method="post"&
&img src="{{ url_for('img_url',urlname=book.Image)}}" name="img" alt=""&
&input type="hidden" name="img_url" value="{{ url_for('img_url',urlname=book.Image)}}"&
im = request.form.get("img_url","没有找到")
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
request.args.get获取的是URL参数,对于你想获得HTML元素某标签的属性。没看懂你想说什么。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
request怎么可能获得页面上的元素,肯定是要你把想传的值放进去才有的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
request不能获取html的标签,如果需求获得相关html标签,需要用到(re,bs4,xpath等)中的工具这三个模块(第三方包)都能达到要求re最万能,基本都能完成,但是学习成本较高bs4和xpath 常规的都能完成,特殊的需要学习相关语法不如操刀re来的更快更灵活re是手动挡 bs4 xpath是自动档 有的时候需要手自一体配合
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:Python爬虫学习笔记一:简单网页图片抓取 - CSDN博客
Python爬虫学习笔记一:简单网页图片抓取
利用python抓取网络图片的步骤是:
1、根据给定的网址获取网页源代码
2、利用正则表达式把源代码中的图片地址过滤出来
3、根据过滤出来的图片地址下载网络图片
以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现:
# -*- coding: utf-8 -*-
# feimengjuan
import urllib
import urllib2
#抓取网页图片
#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
#利用正则表达式把源代码中的图片地址过滤出来
reg = r'src=&(.+?\.jpg)& pic_ext'
imgre = re.compile(reg)
imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' %x) #打开imglist中保存的图片网址,并下载图片保存在本地
html = getHtml(&/p/&)#获取该网址网页详细信息,得到的html就是网页的源代码
getImg(html)#从网页源代码中分析并下载保存图片
进一步对代码进行了整理,在本地创建了一个“图片”文件夹来保存图片
# -*- coding: utf-8 -*-
# feimengjuan
import urllib
import urllib2
#抓取网页图片
#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
#创建保存图片的文件夹
def mkdir(path):
path = path.strip()
# 判断路径是否存在
isExists = os.path.exists(path)
if not isExists:
print u'新建了名字叫做',path,u'的文件夹'
# 创建目录操作函数
os.makedirs(path)
return True
# 如果目录存在则不创建,并提示目录已经存在
print u'名为',path,u'的文件夹已经创建成功'
return False
# 输入文件名,保存多张图片
def saveImages(imglist,name):
number = 1
for imageURL in imglist:
splitPath = imageURL.split('.')
fTail = splitPath.pop()
if len(fTail) & 3:
fTail = 'jpg'
fileName = name + &/& + str(number) + &.& + fTail
# 对于每张图片地址,进行保存
u = urllib2.urlopen(imageURL)
data = u.read()
f = open(fileName,'wb+')
f.write(data)
print u'正在保存的一张图片为',fileName
except urllib2.URLError as e:
print (e.reason)
number += 1
#获取网页中所有图片的地址
def getAllImg(html):
#利用正则表达式把源代码中的图片地址过滤出来
reg = r'src=&(.+?\.jpg)& pic_ext'
imgre = re.compile(reg)
imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中
return imglist
#创建本地保存文件夹,并下载保存图片
if __name__ == '__main__':
html = getHtml(&/p/&)#获取该网址网页详细信息,得到的html就是网页的源代码
path = u'图片'
mkdir(path) #创建本地文件夹
imglist = getAllImg(html) #获取图片的地址列表
saveImages(imglist,path) # 保存图片
结果在“图片”文件夹下保存了几十张图片,如截图:
本文已收录于以下专栏:
相关文章推荐
import urllib.request
import socket
import sys
targetDir = r&C:\Users\elqstux\De...
因为百度贴吧的网页结构较为简单,且无需登录即可读取帖子内容,所以批量获取贴吧图片非常适合用来作为Python爬虫入门的练手项目。
本文所用的Python版本为Python3,用到的主要模块如下:
import urllib.request
import socket
import sys
targetDir = r&C:\Users\elqstux\De...
之前写爬虫大多是爬网页中的url,然后将url保存下来就可以了,倒还没有想过要获取真的图片到本地。网络上有很多方法,但是很多都是本地,或者其他,亲测了两种方法:方法一,使用urllib.urlretr...
这个是个比较简单的例子,
网页中的图片地址都是使用'http://。。。。.jpg'这种方式直接定义的
使用前,可以先建立好一个文件夹用于保存图片,本例子中
使用的文件夹是 d:\\python...
最近开始学习python,python的爬虫诱惑力实在太强。今天看着网上的教程,也学会了这样一个小功能
主要步骤是:
1.抓取网页
2.获取图片地址
3.抓取图片内容并保存到本地
下面是关键代...
花了一天左右的时间,用Java写了一个图片爬取,理论上是可以将所有的图片爬下的,但是整个站点图片太多了,所以只测试的爬了9000张左右的图片。好啦先看效果图。
&img src=...
之前一直在看机器学习,遇到了一些需要爬取数据的内容,于是稍微看了看Python爬虫,在此适当做一个记录。我也没有深入研究爬虫,大部分均是参考了网上的资源。先推荐两个Python爬虫的教程,网址分别是h...
爬虫这东西最早出现在我大学计算机网络的课程上面,我们当时的老师人很好,期末不笔试,他说这东西笔试没什么用,对于一个年纪比较大的老师来讲,能提出这种方式,实在难得。当时在考虑做一个与网络有关的东西好,第...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。
我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。
我们可以通过python&来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。
一,获取整个页面数据
首先我们可以先获取要下载图片的整个页面信息。
#coding=utf-8
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
html = getHtml("/p/")
print html
  Urllib&模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:
  urllib.urlopen()方法用于打开一个URL地址。
  read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。
二,筛选页面中想要的数据
  Python&提供了非常强大的正则表达式,我们需要先要了解一点python&正则表达式的知识才行。
假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:src=&/forum......jpg&pic_ext=&jpeg&
修改代码如下:
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
return imglist
html = getHtml("/p/")
print getImg(html)
  我们又创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接。re模块主要包含了正则表达式:
  re.compile()&可以把正则表达式编译成一个正则表达式对象.
  re.findall()&方法读取html&中包含&imgre(正则表达式)的数据。
&  运行脚本将得到整个页面中包含图片的URL地址。
三,将页面筛选的数据保存到本地
把筛选的图片地址通过for循环遍历并保存到本地,代码如下:
#coding=utf-8
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
html = getHtml("/p/")
print getImg(html)
  这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。
  通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。
程序运行完成,将在目录下看到下载到本地的文件。
【转载:/fnng/p/3576154.html&】
阅读(...) 评论()

我要回帖

更多关于 python页面 的文章

 

随机推荐