我们知道,因为一些原因我们需要在网上搜集一些数据。一般的手动方法不仅效率低而且准确率不能够保证,所以爬虫程序的出现就满足了我们的需求。关于爬虫程序,主要功能就是爬取网页的有用信息,所以按照我所遇到过的情形,我主要分作三个方面来介绍。

第一,静态网页的数据爬取。

静态网页的数据爬取,简单的来说就是在网页源码中进行过滤。筛选出我们需要的信息,在这里我推荐使用BeautifulSoup。这个类库的使用很简单。

(1)安装,安装可以使用pip,但是要注意安装bs4,不可错安装成BeautifulSoup.

(2)它的使用很简单,如下所示:

在构建了一个BeautifulSoup对象后,我们就可以使用这个对象进行数据的筛选了。例如使用findAll这个函数:

这个函数的作用简单的来说就是查找所有符合条件标签。除了上面介绍的方法外,BeautifulSoup还有其他的一些方法,比如说find等等,关于这些方法的使用我在这里就不介绍,有兴趣的话,大家可以参考Beautiful的官方文档。

第二,动态网页的数据爬取。

关于动态网页的数据爬取,这种情况相对于第一种静态网页,情况会有点复杂。比如说,当我们的网页数据有些是通过js动态加载的话,这个时候应该怎么处理??我这里提供了以下几种方法.

(1)熟悉前端的人,可以自己了解js的源码后,然后针对性的进行数据爬取。但是我这里对这种方法不做详细的介绍,因为本人对前端不太熟悉,如果有同学熟悉的话,可以发信息给我。

(2)这种方法主要的原理,就是模仿浏览器,先把动态的数据请求加载完成后,然后对加载完成的数据进行爬取。这里有很多的浏览器驱动,例如chorme,firefox等。这里我推荐大家使用PhantomJS,这是一种无界面的浏览器环境。可以满足我上面提到的需求。使用方法如下:

这里的path是PhantomJS所在的位置,PhantomJS可以在网上下载。然后

通过xpath的方式查找数据。

第三,除了上面介绍的情况外,还有一种情况就是会出现url转发的情况,我们需要的资源,也许就是在另一个页面之上,这个时候,如果我们能够弄清楚这个url的话,我们就能不用管网页上的相关繁琐代码,直接请求这个url获取我们需要的资源,这样子的话事半功倍。要弄清楚url,这里就需要大家了解一些浏览器的操作了,我这里推荐使用chorme浏览器,通过F12键。大家可以通过这个网页检查功能获取我们需要的url参数,例如说。

这是百度贴吧的回复信息。

这里就是请求头的一些信息,其中tid,fid,pn,see_lz就是我们所需要的参数,通过这些参数我们就能知道完整的url是怎么构造的,这样字的话,我们就能直接通过访问网页的是形式爬取信息了。

如果大家对相关话题感兴趣的话,可以关注yiyele-xxq(程序猿技术交流)公众号。

爬虫程序的简单介绍(Python)相关推荐

  1. python中len用法_简单介绍Python中的len()函数的使用

    简单介绍Python中的len()函数的使用 函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数:str:要计算的字符串.列表.字典.元组等 4:返回 ...

  2. 微信小程序的简单介绍

    微信小程序的简单介绍 1.与HTML的区别 HTML 微信小程序 <div></div> <view></view> <h1></h1 ...

  3. 简述python中的几种数据类型,简单介绍Python中的几种数据类型

    简单介绍Python中的几种数据类型 python 里面分为 基本数据类型 和 复合数据类型 基本数据类型包括:数值 字符串 布尔 和 none 复合数据类型包括:列表 元组 字典 和集合怎么算是深情 ...

  4. 简单介绍python装饰器

    这篇文章简单介绍一下python装饰器,希望对你们有所帮助. 简单正常python例子: def up(text):return text.upper() #转成大写 def lo(text):ret ...

  5. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  6. golang爬虫框架colly简单介绍

    colly一款快速优雅的golang爬虫框架,简单易用,功能完备. colly 官网地址:http://go-colly.org/ colly github地址:github.com/gocolly/ ...

  7. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...

  8. python爬虫程序实例-10个python爬虫入门实例

    作者:h3zh1 来源:cnblogs.com/h3zh1/p/12548946.html 今天为大家准备了几个简单的python爬虫入门实例,分享给大家. 涉及主要知识点:web是如何交互的 req ...

  9. 简单介绍Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",h ...

  10. python程序框架的描述_简单介绍Python下自己编写web框架的一些要点

    在正式开始Web开发前,我们需要编写一个Web框架. 为什么不选择一个现成的Web框架而是自己从头开发呢?我们来考察一下现有的流行的Web框架: Django:一站式开发框架,但不利于定制化: web ...

最新文章

  1. linux用户管理最常用的三个文件说明(不完整版)
  2. java merge json出错删除相同的json
  3. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题...
  4. 全局事件总线 (GlobalEventBus)
  5. python机器学习案例系列教程——GBDT构建新特征
  6. 如何编程在一个文本文件中每隔n个字符插入一个换行符c语言实现,C语言程序设计A形成性作业及答案(31页)-原创力文档...
  7. Vue,Javascript--时间戳的操作
  8. IDEA中如何将springboot项目打包成war包,部署在tomcat中
  9. Java中线程出现Exception in thread Thread-0 java.lang.IllegalMonitorStateException异常 解决方法...
  10. 滚动插件 animatescroll(可以设置要滚动到位置)
  11. HTML与css语法笔记
  12. 装机人员常用软件工具大全
  13. uni-app获取车牌号
  14. 物理计算机技术研究生就业前景,物理学就业前景
  15. 矩阵相加 / 矩阵相乘(详解版)
  16. 计算机应用基础难点,计算机应用基础(本科)重、难点
  17. 凤凰新闻 android,凤凰新闻app正式版
  18. 文本分类和聚类有什么区别
  19. Springboot之监控健康状况
  20. Excel2007 不能清除剪贴板

热门文章

  1. 4x4矩阵键盘c语言程序,C语言矩阵键盘程序
  2. 安装使用 GoldenDict 查词神器 (Windows/Mac/Linux)
  3. 深度学习涉及到的高等数学知识点总结
  4. 网络规划设计师教程第二版目录
  5. WhiteSmoke无限试用
  6. 下面不属于使用工具的潜在收益的是哪个_电子商务概论习题集
  7. 决策支持系统 (Decision-making Support System, DSS) (人机智能系统)
  8. ubuntu 版mysql客户端工具_mysql linux版下载
  9. 诚龙网刻报错_诚龙网维全自动PXE网刻工具 GHOST11 11.0版 含诚龙网维网刻工具网刻教程...
  10. java多线程编程详细入门教程