简单实现python爬虫功能


Posted in Python onDecember 31, 2015

       在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。

我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。

我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。

一、获取整个页面数据 

首先我们可以先获取要下载图片的整个页面信息。

getjpg.py

#coding=utf-8
import urllib

def getHtml(url):
  page = urllib.urlopen(url)
  html = page.read()
  return html

html = getHtml("http://tieba.baidu.com/p/2738151262")

print html

Urllib模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

urllib.urlopen()方法用于打开一个URL地址。

read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。

二、筛选页面中想要的数据

Python 提供了非常强大的正则表达式,我们需要先要了解一点python 正则表达式的知识才行。

假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:src=”http://imgsrc.baidu.com/forum......jpg”pic_ext=”jpeg”

简单实现python爬虫功能

修改代码如下:

import re
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("http://tieba.baidu.com/p/2460150866")
print getImg(html)

我们又创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接。re模块主要包含了正则表达式:

  • re.compile() 可以把正则表达式编译成一个正则表达式对象.

  • re.findall() 方法读取html 中包含 imgre(正则表达式)的数据.

运行脚本将得到整个页面中包含图片的URL地址。 

三、将页面筛选的数据保存到本地
把筛选的图片地址通过for循环遍历并保存到本地,代码如下:

#coding=utf-8
import urllib
import re

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)
  x = 0
  for imgurl in imglist:
    urllib.urlretrieve(imgurl,'%s.jpg' % x)
    x+=1


html = getHtml("http://tieba.baidu.com/p/2460150866")

print getImg(html)

这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。
通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。
程序运行完成,将在目录下看到下载到本地的文件。

结果展示:

简单实现python爬虫功能

以上就是本文的全部内容,希望对大家实现Python爬虫功能有所帮助。

Python 相关文章推荐
python相似模块用例
Mar 04 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python实现图片筛选程序
Oct 24 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Keras自定义IOU方式
Jun 10 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
python爬虫请求头的使用
Dec 01 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 #Python
基于python的Tkinter实现一个简易计算器
Dec 31 #Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 #Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 #Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 #Python
Python 功能和特点(新手必学)
Dec 30 #Python
python实现文本文件合并
Dec 29 #Python
You might like
Syphon 秘笈
2021/03/03 冲泡冲煮
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript 限制输入脚本大全
2009/11/03 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
django文档学习之applications使用详解
2018/01/29 Python
python负载均衡的简单实现方法
2018/02/04 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
全民健身日活动方案
2014/01/29 职场文书
机电一体化求职信
2014/03/10 职场文书
项目建议书格式
2014/03/12 职场文书
同学聚会策划方案
2014/06/06 职场文书
最美护士演讲稿
2014/08/27 职场文书
怎样写观后感
2015/06/19 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python