想学爬虫,但是只会Python的基础,有没有大佬推荐一下书籍啊?

关注者
21
被浏览
4,967
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

爬虫是一门可难可简单的技术。你的最终目标是用爬虫。我来讲讲学习爬虫需要经历哪些步骤以及对应需要学习的知识,我这里找的都是简化版资料,如果要复杂的也有,可以私信推荐:

假设现在要写一个的爬虫,粗略估计,常规步骤大概可分为四步:

根据需求寻找数据网址, 如何找到数据地址,会用到一些工具,比如浏览器提供的调式工具(按F12就会弹出)以及一些代理工具,如windows下的fiddler、mac下的charles。同时在这个过程中我们最好了解一些http的知识;

浏览器的调式工具我们重点关注的是其中的 "网络"或称为 "network"的tab。

关于代理是什么,可以来看看百度百科里面对代理服务一句多么简洁的解释:

fiddler工具的使用在慕课网上有个免费的视频,可以去看看:

http的介绍就看w3cschool吧,它为我们提供的http教程如下:

从网络获取原始数据,怎么使用python提供的网页下载器,比如urllib(该包在python2和3下使用方式不同),requests(推荐,使用很人性);

requests推荐这篇快速上手,官网资料。如果要了解更多,可以把其他章节也读完:

urllib,建议暂时可以不用学了,把requests用好就好。

注意:要用好这个包,我们还需要知道一些http在web编程方面的知识,比如登录态是怎么保存的(session和cookie这类问题),怎么配置请求等。这方面知识很多时候会与反爬有关,相对比较复杂,现在不说了,有兴趣可以自己去了解。

从原始内容中解析数据, 经过上面的步骤,已经拿到网页数据。下面就是解析,解析数据之前要首先知道下载到的是什么格式数据。常见的格式有:html(xml)、json、csv,excel、某种规则的字符串;

HTML的解析常见的有xpath或css两种方式,python中lxml包为我们提供了这个功能。贴一个我之前回答过的问题:

w3c的xpath教程:

json的解析就非常简单了,使用python自带的json库即可解析数据。关于什么是json,可以看下面的文章,个人认为w3c的文章适合入门:

比如,下面这个例子:

body = '{"name": "poloxue"}'
json.loads(body)

即可将数据解析出来。

csv呢?称为逗号分隔值的一种格式,比如字符串 'poloxue,23',我们需要约定第一个值是姓名,第二个值是年龄。简单的解析,我们可以直接使用python的split方法,也可以参考下面这篇文章:

将抓取的数据保存进库,在我们把数据都处理好之后,就可以入库了。入库之前需要先明白我们要入的是什么库,可以是普通的文件或一些特殊格式的文件,如csv、hdf5等,或者某些关系型数据库。

csv是什么已经介绍过了。关于怎么写入csv文件上面的文章也有介绍。

hdf5是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF 是由美国国家超级计算应用中心(NCSA)创建的,听着挺牛。它的压缩率可以很高。

文档发个官网英文版:

关系型数据就不介绍了,挺重的,当前可不用着急了解,因为要学的东西有点多。如果有兴趣可以去了解下sqlite,小型本地的关系型数据库,安装简单,数据存放在本地且支持sql语句。

如果了解sql使用的话,可以直接看这篇:

否则先去学习一下怎么安装和使用:

好了,就说这么多吧。资料都是随手找的,应该都比较适合上手。当然也可以去网上找一些视频课程学习一下,如果找对了课程,上手就会比较快。

最后,想继续深入学习,可以在去看看scrapy框架,重点是了解它的设计思想,在我看来,现在的很多爬虫框架的设计思想都大同小异。还有要把之前学的不扎实知识再巩固一些,做到知其然且知其所以然。这样有利于之后清晰的了解反爬的机制,并帮助我们找出破解反爬的方法。