学爬虫是循序渐进的过程,作为零基础小白,大体上可分为三个阶段,第一阶段是入门,掌握必备的基础知识,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,第三阶段是自己动手,这个阶段你开始有自己的解题思路了,可以独立设计爬虫系统。
爬虫涉及的技术包括但不限于熟练一门编程语言(这里以 Python 为例)** HTML 知识、HTTP/HTTPS 协议的基本知识、正则表达式、数据库知识,常用抓包工具的使用、爬虫框架的使用、涉及到大规模爬虫,还需要了解分布式的概念、消息队列、常用的数据结构和算法、缓存,甚至还包括机器学习的应用,大规模的系统背后都是靠很多技术来支撑的。
爬虫只是为了获取数据,分析、挖掘这些数据才是价值,因此它还可以延伸到数据分析、数据挖掘等领域,给企业做决策,所以作为一名爬虫工程师,是大有可为的。
那么是不是一定要把上面的知识全学完了才可以开始写爬虫吗?当然不是,学习是一辈子的事,只要你会写 Python 代码了,就直接上手爬虫,好比学车,只要能开动了就上路吧,当然写代码可比开车安全多了。
入门爬虫,学习正则表达式并不是必须的,你可以在你真正需要的时候再去学,比如你把数据爬取回来后,需要对数据进行清洗,当你发现使用常规的字符串操作方法根本没法处理时,这时你可以尝试了解一下正则表达式,往往它能起到事半功倍的效果。Python 的 re 模块可用来处理正则表达式。
数据清洗完最终要进行持久化存储,你可以用文件存储,比如CSV文件,也可以用数据库存储,简单的用 sqlite,专业点用 MySQL,或者是分布式的文档数据库 MongoDB,这些数据库对Python都非常友好,有现成的库支持。 Python操作MySQL数据库 通过Python连接数据库。
关于实践
网上的爬虫教程多如牛毛,原理大体相同,只不过是换个不同的网站进行爬取,你可以跟着网上的教程学习模拟登录一个网站,模拟打卡之类的,爬个豆瓣的电影、书籍之类的。通过不断地练习,从遇到问题到解决问题,这样的收获看书没法比拟的。
爬虫常用库
urllib、urlib2(Python中的urllib)python内建的网络请求库
urllib3:线程安全的HTTP网络请求库
requests:使用最广泛的网络请求库,兼容py2和py3
grequests:异步的requests
BeautifulSoup:HTML、XML操作解析库
lxml:另一种处理 HTML、XML的方式
tornado:异步网络框架
Gevent:异步网络框架
Scrapy:最流行的爬虫框架
pyspider:爬虫框架
xmltodict:xml转换成字典
pyquery:像jQuery一样操作HTML
Jieba :分词
SQLAlchemy:ORM框架
celery :消息队列
rq:简单消息队列
python-goose :从HTML中提取文本
书籍
《图解HTTP》
《HTTP权威指南》
《计算机网络:自顶向下方法》
《用Python写网络爬虫》
《Python网络数据采集》
《精通正则表达式》
《Python入门到实践》
《自己动手写网络爬虫》
《Crypto101》
《图解密码技术》
如果你也想入门高薪Python人工智能行业,欢迎你来到达内学习。
领取专属 10元无门槛券
私享最新 技术干货