Python爬虫怎么入门-初级篇

Python爬虫 2018-12-10 16:50:12 阅读(5182) 评论(3)

经常有同学问老猿Python爬虫该怎么入门,不知道从何学起,网上的文章写了一大堆要掌握的知识,让人更加迷惑。

我也浏览了下网上关于怎么Python爬虫入门的文章,发现有的还在教人用urllib来发送http请求,这真是有点误人子弟了。本文也不提倡刚开始去学习第三方爬虫框架,老猿想把要学习的知识简化一些,让入门更快速,更专注。

python爬虫怎么入门

Python爬虫入门:技能

真要说Python爬虫需要具备什么知识,那就是你得会Python,哈哈。

其他的知识就是你能熟练运用Python的几个第三方库,当然你具备一点html javascript css http协议 可以提高你的解决问题的效率,但这是一篇入门文章,我们不再这里讨论。

为什么老猿要这样说呢?先来说说爬虫是怎么一会事。

Python爬虫入门:爬虫流程

爬虫程序的完整流程是:
1.通过网络编程把网站上的网页请求下来;
2.对这些网页做数据抽取;
3.把抽取出来的数据存进数据库(或文件)里。
4.循环重复上述步骤,为了抓取大量网页。

下面对上述4个步骤做详细说明:
步骤1:怎么把网页请求下来,你就使用 Python requests 库好了。requests库强大而简洁,他能帮你把网站上的网页请求下来。
步骤2:对请求下来的网页做数据抽取的方式很多。比如用lxml,xpath,BeautifulSoup这些Python库,我这里对初学者推荐用正则式re库,因为lxml,xpath那些的学习时间要长一点,而且对html要有点概念。你先学习下怎么写正则表达式来抽取网页里的数据。
步骤3:这很简单,你是练习的话,你就先把抽取的数据写进文件就好了。
步骤4:这是程序的设计逻辑问题,其实跟爬虫本身不相关,要能循环重复上面的步骤,最简单就是写一个循环语句是吧。

一个爬虫程序其实就是由上述几个动作构成的,大量抓取网页—>对抓取的网页结构化—->把结构化的数据存进数据库—>重复上述步骤。
我们会在4个动作上加入大量的代码(这些代码可能是你自己写的,也可能是运用第三方Python库来辅助写的),其目的就是保证上述四个动作稳定,高效,精准。

比如要保证步骤1的稳定抓取,你要对requests库的请求做容错处理,记录已经抓取的URL,防止重抓取,研究http header和对方网站的访问频率控制策略来降低你的爬虫被屏蔽的概率。
比如要保证步骤2结构化数据的准确度,你就要用chrome浏览器去抓包,用正则表达式re库久了,就会想要试着用下lxml,xpath看看解析网页是否更快速,更准确等。
比如步骤4,等你想要大量高效率抓取网页时,你可能会想试着把程序改成异步IO,或者多线程等。

以上就会让一个原本只有几十行代码的爬虫程序,膨胀到上百行,过千行代码,我们称之为较为高可用,高效率的爬虫程序。

Python爬虫入门:多动手练熟练

在实践中提高Python爬虫技能
我建议作为初学者,尤其如果你的Python又还不太熟悉时,你就从最简单爬虫开始写起,你用这个程序去抓取网页,在这个抓取网页的过程中,你会遇到形形色色的网络问题,网页解析问题,被屏蔽问题,各种报错,遇到问题就善用搜索引擎,去搜索解决方法,在解决这些问题的过程中,你的知识就在巩固和提高,你对爬虫的认知也在提高,这个时候你自己就会想有没有第三方Pyhton库可以来解决这些问题,自己是不是还有些知识点欠缺,这个时候你再反过来去学习相关知识点,这时候你的接受程度和理解程度就快速和容易很多。

总结一下:
作为初学者,你先学习python requests库和re正则表达库后,就开始写爬虫吧,多动手撸码比什么都重要。
PS:python requests 运用熟练了,你就已能写出一个有用处的爬虫了。

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...

  1. 1楼
    Hao 5年前 (2018-12-11)

    是不是得先搞定python语法

    • 回复
      王平 5年前 (2018-12-11)
      回复 @Hao :这是必须的,不过不用去背,写代码练手,多连几个程序,就熟悉语法规则了
  2. 2楼
    匿名 4年前 (2020-04-27)

    思路很好,简单明了!就缺个师傅了\n