专栏首页猪圈子爬虫专栏第三章介绍

爬虫专栏第三章介绍

一.题外话


已经有好一阵子没有更新爬虫专栏了,并不是猪哥懒,确实是没有灵感。

因为猪哥写文章并不是将所有的功能和方法列一遍而已,我觉得这些大家完全可以在网站找到,所以真的没必要。

我更喜欢的是用一个个鲜活有趣的例子先让大家尝鲜,即使你不懂代码的含义,但是你用着用着就会了,会了之后自己就会想去了解更多,所以猪哥提倡的更是一种引导的方式,而不是教导。

其实刚开始工作也是如此,到新公司一般会让你先装环境,然后就是了解项目,是项目引导你去学习技术。

引导学习是需要我们自己主动学习的,所以我更希望的是我们大家一起参与进来完成这一章的内容,一起来看看这张内容讲什么吧!

二.第三章讲什么

上一章节我们用十来个具体的实战案例讲解了如何使用requests库的爬取,猪哥再强调一遍:requests库 实战非常非常重要,是学习爬虫的实际起步或者说入门的一个库,希望大家已经掌握了requests库的基本用法。

稍微了解一点爬虫的同学应该都知道,爬虫的一个基本流程也逐渐明了:爬取->解析->存储,基本三步走。

所以这一章我们当然是讲如何解析爬取到的数据了(没错,猪哥又要po出那张爬虫图了,哈哈!)。

解析库的内容:

三.解析库

1.征集案例

老粉们看我的文章应该也有一段时间,猪哥的写作风格基本就是:严谨、有趣还有风骚,其实写文章和敲代码并不需要太多的时间,最费时和精力的是去思考实战案例。

前面猪哥说了希望大家一起参与进来完成这章,所以向大家征集有趣的案例或者投稿,投稿方式给大家讲下,在公众号回复:投稿 即可!

之前有很多同学给猪投过搞(再次感谢大家的积极投稿),但绝大部分文章没有被采纳,主要原因还是因为写的不够仔细,很多文章都是简单介绍要做的项目,然后贴代码,写结果,中间的分析过程基本没有。猪哥认为这种文章对新手不够友好,所以没有采纳,还望大家见谅,希望大家能继续支持。

写作对大家技术的成长绝对有帮助,希望有更多的同学投入到写作当中!

所以如果你有好的想法好的案例请在文末留言哦~

2.JSON解析

一般情况下,网站会有纯数据的接口和返回网页的接口之分。因为前后端分离的流行,所以越来越多的纯数据接口了。纯数据接口解析起来也会比网页要简单很多,所以猪哥建议我们在爬取数据的时候优先考虑是否有纯数据接口。

前些年Web数据传输格式更多的可能是XML (eXtensible Markup Language),但是现在JSON(Javascript Object Notation) 已成为Web数据传输的首选,因为JSON相比XML容易阅读、解析更快、占用空间更少、对前端友好。

而且纯JSON数据相对于网页来说解析更加简单,所以猪哥打算先从json开始讲起。

3.网页解析

除了纯JSON数据之外,更多的是返回网页,所以网页解析是一个重要的知识点。

网页解析的库非常多,但是常用的也就那几个,所以猪哥就重点讲几个吧:

  1. 正则:正则匹配网页内容,但是效率低,局限性大。
  2. beautifulsoup4:美味汤,简单易于上手,很多人学的第一个解析库。
  3. lxml:XPath标准的实现库,据说解析速度很快。
  4. pyquery:听名字就知道语法和jquery相似,对熟悉jquery的同学会是个不错的选择。
  5. requests_html:有些同学可能还没听过,这是2018年新出的一个解析库,是requests库作者开发的,很多人相信它会成为主流解析库。

常用解析库大概就这几个,如果你觉得还有其他的好用解析库也欢迎在留言区给出。

四.总结

介绍完解析库之后,我们来一次实际的解析速度实测,这样也不至于人云亦云。还有就是给出每种解析库的实际使用场景。

本文分享自微信公众号 - 猪圈子(Tester-sc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Python的Requests-HTML库进行网页解析

    Python 中可以进行网页解析的库有很多,常见的有BeautifulSoup和lxml等。在网上玩爬虫的文章通常都是介绍BeautifulSoup这个库,我平...

    测试小兵
  • python+appium+夜神模拟器+jenkins进行android自动化测试

    就算所有人都不支持你。这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾。

    测试小兵
  • 互联网公司脱发白皮书

    今日,脱发届权威机构“拯救发际线协会”发布了备受广大互联网人关注的《互联网公司脱发白皮书》(以下简称《白皮书》)。

    测试小兵
  • 【Leetcode】【python】Number of Segments in a String

    之后才意识到自己想复杂了,有空格就可以了。。。 不过代码中flag的作用是记录上一轮循环发生的结果,在其他代码编写中中可以作为一个用例。

    后端技术漫谈
  • SQL的各种连接Join详解,都需要熟练掌握!

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、...

    掌上编程
  • eclipse使用jetty容器

    Base directory:${project_loc:push_management}

    week
  • SQL的各种连接Join详解

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

    用户5745385
  • Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案

    Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案,ext 的CheckboxSelectionModel在后台默...

    Java中文社群_老王
  • 每日一读 Packtpub.OpenSt

    第六章 Mapping and Editing Techniques 讲地图编辑,第七章 Checking OpenStreetMap Data for Pro...

    py3study
  • 中台之上(十五):被忽视的产品目录

    产品目录大家并不陌生,无论是现已经近乎绝迹的邮寄产品目录还是超市门口经常有人发送的打折商品目录,这些都是产品目录,由于日常生活中,我们都是各种产品目录的轰炸对象...

    用户6900693

扫码关注云+社区

领取腾讯云代金券