简单实现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设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
python按照多个条件排序的方法
Feb 08 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
Python内存管理实例分析
Jul 10 Python
详解python中index()、find()方法
Aug 29 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
Python就将所有的英文单词首字母变成大写
Feb 12 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
日本十大惊悚动漫
2020/03/04 日漫
PHP句法规则详解 入门学习
2011/11/09 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
checkbox使用示例
2013/08/23 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
简单的三步vuex入门
2018/05/20 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python使用百度翻译进行中翻英示例
2014/04/14 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python树莓派红外反射传感器
2019/01/21 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
思想汇报范文
2013/11/04 职场文书
道路建设实施方案
2014/03/18 职场文书
承诺书模板
2014/08/30 职场文书
大学入学感言
2015/08/01 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书