专栏首页小数志学习python爬虫的平凡之路

学习python爬虫的平凡之路

写在前面

人生苦短,我用python。 学习python已有两月有余,但若刨除出差和日常繁杂事务,实际的有效学习时间其实也挺有限的。和很多python新人一样,我也是从python爬虫入手的,一段几十行的小代码就能从浩瀚无际的网络中抓取想要的数据,若是能加几个小技巧甚至就能带来全新的爬虫体验,很容易让人陶醉其间乐此不疲,既能保证学习载体又可在短时间内收获可见的效果。 鉴于已经把python爬虫刚需的大部分方法摸索实践过了,也恰逢2018年的最后一天,所以决定总结下自己的学习之路,算是对过往的一点交代。


Python爬虫10步走

  • 基础知识。包括python基本语法,html常识,重点理解python字符串处理常用方法和2种数据结构:dict(字典)和json。
  • 3个IDE:Idle,Sublime,Pycharm。Idle是python自带的编辑器,非常小巧,但功能也比较受限,适合学习语法阶段使用;Sublime是一个多功能文本编辑器,可以通过设置适用于多种语言,界面简洁而不失华丽,功能强大而不失轻巧,可以满足大部分爬虫需求;Pycharm,从名字就可以看出是一个python定制的IDE,功能极为强大,尤其是虚拟编译环境,据说受到很多专业开发青睐。另外,还有很多大神推荐使用Anaconda,个人尚未尝试,目前仍主用Sublime,对于学习使用已经足够了。
  • 2个爬虫库:urllib 和requests。urllib为python3自带(python2中又细分为urllib和urllib2),requests为第三方库,需手动安装。
  • 3种解析方法:beautifufsoup,xpath,re。xpath适用于结构规律性较强的网页;re采用正则匹配,只要能找出唯一适用的正则表达式即可;beautifulsoup使用也较为简单,但效率较差。个人使用优先级:xpath>re>bs。当然,绝大多数情况下,3种方法可相互替代。
  • 2种抓包分析方法:F12和fiddler。各浏览器F12后都会进入开发者工具,既可以查看具体的html源码,也能分析浏览器和服务器端交互过程,包括request方法,headers,cookie,post data等等,需熟练运用。当面对一些复杂页面或者移动端数据(例如手机APP)时,简单的F12工具则不足以满足需求,此时可以借助抓包工具Fiddler,设置好代理后就能就能将移动端所有数据交互过程全部记录下来,便于分析和抓取。
  • 2个数据库:MySQL和MongoDB。二者都是数据库排名前5的数据库,其中MySQL是关系型数据库的巨鳄(DB-Engines Ranking中排名第2),而MongoDB是非关系型数据库的头牌(DB-Engines Ranking中排名第5,非关系型数据库中排名第1)。爬虫数据量较大时,简单的存储至本地文件不是一个理想的选择,这时就可视具体抓取数据格式决定选用其中一种数据库。
  • 爬虫身份证:cookie。主要是应对一些必须要登录后方可爬取数据的平台,如知乎、淘宝等,这时就必须携带一个登录后的cookie。cookie是一个字典格式的数据,简单的可直接复制就能使用,复杂的可以解析post data后构造,甚至是应用selenium模拟登录后得到。
  • 所见即所得:selenium。为了得到爬虫的身份cookie,一些网站的post data又进行了复杂的加密,此时应用selenium似乎就是一个很好的选择,它几乎可以完全模拟人工登录的过程,从而实现指哪抓哪。若是用可视的浏览器模式,则可以看到浏览器自动化操作的场面;若是用headless模式,则是通常意义的爬虫模式。
  • 程式化爬虫框架:scrapy。若要进行全站抓取,应用scrapy爬虫框架可以事半功倍。实际上,scrapy是一个爬虫模板,通过定制其中的一些设置后(如爬取初始页,抓取数据格式,抓取方法等)即可以快速实现全站抓取。scrapy用得熟练之后,也十分有利于培养爬虫工程师思维。
  • 高效爬虫:threading。就像计算机最终从单核走向了多核一样,爬虫最终还是要走向多线程乃至分布式。尤其是待爬取的任务工作量大而又重复度很高时,就非常适用多线程爬虫,相当于从一只虫子变成了多只虫子在爬,效率提升明显。

最后,附一张python爬虫学习路线图

本文分享自微信公众号 - 小数志(Datazhi),作者:luanhz

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

原始发表时间:2019-02-04

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python应用MongoDB数据库的一些总结

    数据库,顾名思义,就是数据存储的一个仓库。个人理解,与普通的文件不同,数据库因为是专门用于存储特定格式的数据,所以术业有专攻,它在处理数据相关的事务时更为专业和...

    luanhz
  • 数据库初学者的福音——SQLite

    数据库操作应该算是所有程序员的基本功了,写的一手好SQL对于数据分析师而言更是安身立命之本。前期,个人惯用的是MySQL,近日由于工作需要对Sqlite使用更为...

    luanhz
  • 应用scrapy爬虫框架

    scrapy=scrap+python,是python自动化爬虫框架,相当于一个模板。当启动了一个scrapy工程后,会自动生成若干相互关联的文件,用户仅需根据...

    luanhz
  • 小白学 Scrapy 爬虫系列之一:准备实验机器

    本系列文章中,笔者将带领大家从零开始学习爬虫编写。在跟随笔者一起实操之前,要求大家有一定的 Python 基础。之前没接触过的同学也不用担心,Python 号称...

    编程派
  • 我是这样开始写Python爬虫的

    刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件。 利用这些数据,可以做很多领域的分...

    企鹅号小编
  • Python爬虫岗位要掌握相关的技能知识

    1、基本的编码基础(至少一门编程语言)这个对于任何编程工作来说都是必须的。基础的数据结构你得会吧。数据名字和值得对应(字典),对一些url进行处理(列表)等等。...

    python学习教程
  • 干货 | 那些你不知道的爬虫反爬虫套路

    崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。

    华章科技
  • 推荐一条高效的Python爬虫学习路径!

    如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,...

    python学习教程
  • python3 爬虫工作原理

    网络爬虫我们一般简称为爬虫或者蜘蛛,它是一个自动抓取网络信息的程序或代码脚本。 如果我们把互联网看成一张巨大的蜘蛛网,上面链接着各种各样的网页数据,爬虫就像蜘蛛...

    python鱼霸霸
  • Python爬虫与反爬虫左右互搏(带视频)

    爬虫与反爬虫是两类互斥的应用,它们争斗了多年。就像病毒程序与反病毒程序,永远是先有病毒程序,再有反病毒程序一样,爬虫程序总是先诞生,然后网站服务商就会想尽办法不...

    蒙娜丽宁

扫码关注云+社区

领取腾讯云代金券