大部分爬虫框架都是
- 发送请求
- 获得页面
- 解析页面
- 下载内容
- 存储内容
定个宏伟目标
- 淘宝1000页
- 知乎
- 豆瓣
- ...
python基础
- list、dict:序列化爬取的内容
- 切片:分割爬取内容,获取需要的部分
- 条件判断:只找需要的,过滤掉没用的
- 循环和迭代:重复爬虫动作,直到爬取完成
- 文件读写操作:读取参数,将爬取的内容保存
- 编码常识:转码和解码
知识储备
- 网页基础知识:HTML、POST、GET、JS
- 分析语言:正则表达式、XPath、Beautifulsoup
辅助工具
- 开发者工具:F12
- 抓包工具:Fiddler 4
- 正则表达式测试:http://tool.chinaz.com/regex/
- 谷歌翻译:https://translate.google.cn/
- JSON解析:https://www.json.cn/
- PyCharm(Windows)
- Eclipse for Python(Linux)
各种模块
- urllib
- urllib2
- requests
- scrapy
- selenium
- phantomJS
反爬虫策略
- 打码平台
- PIL(图像处理标准库)
- OpenCV((开源)发行的跨平台计算机视觉库)
- Pybrain(号称最好用的Python神经网络库)
- 。。。
数据库
- mysql
- mongodb
- sqlite(scrapy自带的)
- redis(分布式需要)
数据分析
- numpy:数据分析,类似matlab
- pandas:基于numpy的数据分析模块
进阶技术
- 多线程
- 分布式
Scrapy + MongoDB + Redis 分布式爬虫系统
a). Redis 用来存储要爬取的网页队列,也就是任务队列
b). MongoDB 用来存储爬取的内容结果。
c) . Scrapy 里放爬虫crawler , 分别爬取不同的网页内容。
学以致用
- 多练习,多使用
- 编程是最容易获得的超能力。你还在等什么?