千锋教育-做有情怀、有良心、有品质的IT职业教育机构

位置:首页 > 行业动态

来上海培训班学习Python,爬虫技术学习很重要

时间:2018-02-09 16:40:44  |  来源:千锋教育上海校区  |  作者:千锋  

   爬虫每天都在网上爬大量的信息,各大搜索引擎厂商每天都有上百万的爬虫在网络上活动,这些爬虫的作用就是给搜索引擎采集互联网上的内容,采集来的内容经过分类、加工之后,进入搜索引擎的索引。Python爬虫也是,只不过它用的工具是Python语言。

图片2.jpg

  那么如何写Python爬虫?方法如下:

  一,获取整个页面数据

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

  getjpg.py

  复制代码

  #coding=utf-8

  import urllib

  def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()

  return html

  html = getHtml("http://xxx/xxx.jpg")

  print html

  复制代码

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

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

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

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

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

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

  修改代码如下:

  import reimport urllibdef getHtml(url): page = urllib.urlopen(url) html = page.read() return htmldef getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imglist = re.findall(imgre,html) return imglist html = getHtml("http://xxx/p/2460150866")print getImg(html)

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

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

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

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

  三,将页面筛选的数据保存到本地

  把筛选的图片地址通 过for循环遍历并保存到本地,代码如下:

  #coding=utf-8import urllibimport redef getHtml(url): page = urllib.urlopen(url) html = page.read() return htmldef 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+=1html = getHtml("xxx/p/2460150866")print getImg(html)

  这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。

  通 过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去规范,对其进行重命名,命名规则通 过x变量加1。保存的位置默认为程序的存放目录。

  程序运行完成,将在目录下看到下载到本地的文件。

图片3.jpg

  千锋上海Python开发培训以实战项目做指导,手把手纯面授,面对面现场学科。同时论坛辅导,上课资料录制,方便学生课后复习。教研+讲师+项目实战+随堂笔记录制,学科,确保学习质量。

  具有前沿设计理念的工作经验和学科经验兼备的Python爬虫培训讲师,及时给同学灌输企业当前需求和行业流行趋势,保持学员思路的创新性和时代性!

上一篇:Python学习如何速成?来千锋上海零基础培训班快速提升
下一篇:上海php培训班选哪家?成为中高端开发者来千锋

课程咨询

  • 北京天丰利校区(总部):北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226/7-801
    面授课程:Android培训、HTML5培训、UI交互设计培训、PHP培训、JavaEE培训、大数据开发培
                     训、VR/AR混合现实培训、iOS培训、好程序员
  • 深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷A区B座605-619
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋2楼、3楼
    咨询电话:0755-33582485-801(硅谷校区)0755-86660670-801(大学城校区)
    面授课程:Android培训、HTML5培训、UI交互设计培训、PHP培训、JavaEE培训、iOS培训
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-56166283/56166279
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课程培训、好程序员
  • 郑州地址:郑州市金水区纬五路21号河南教育综合楼(经纬中学楼)6/7/8层
    咨询电话:0371-55191750 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 大连地址:辽宁省大连市甘井子区软件园路2号东软信息B8座2层
    咨询电话:0411-39026086 400-654-7778
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 武汉地址:武汉市江夏区藏龙岛杨桥湖大道15号拓创大厦15楼
    咨询电话:027-81772047
    面授课程:Android课程培训、HTML5课程培训、JavaEE培训、iOS课程培训
  • 成都地址:成都市武侯区科华北路62号力宝大厦N(北楼)18楼
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、JavaEE培训、iOS课程培训
  • 校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:029-85260160 029-85261030 029-85260960
    面授课程:Java课程培训、Android课程培训、HTML5课程培训、JavaEE培训
  • 杭州地址:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:0571-86893632 010-82790226-801
    面授课程:Android课程培训、HTML5课程培训、iOS课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A4层
    咨询电话:0532-80910752/3 010-82790226-801
    面授课程:Android课程培训、HTML5课程培训、UI交互设计培训、iOS课程培训
  • 了解千锋动态
    关注千锋教育服务号

  • 扫码关注千锋互联
    身边的移动开发导师