网络爬虫实战3
对大数据的获取,处理和分析,以及基于大数据的智能应用,已成为提高竞争力的关键因素
我们需要的数据大多源于各个网站,但是不同网站结构不一,布局复杂,渲染方式多样
有的网站还采取了一系列“反爬”,我们也需要针对的反制措施!
爬虫是服务机器学习和人工智能发展非常重要的技术!为其提供优质的数据
崔佬提供了多种安装python库的方式:
- pip/conda
- wheel
- 去官网/github下载源码再安装
爬虫可以简单分为:爬取页面,分析页面,存储数据
请求库:
requests: 爬取html
Selenium 自动化测试,驱动浏览器执行某些(点击,下拉)操作,渗透JS渲染
但还要配置浏览器,此处用最好的ChromeDriver,先更新chrome
下载后直接放进环境的Scripts里面,或者单独设置环境变量
PhantomJS 无界面,可脚本编程的webkit浏览器引擎,被selenium弃用了,推荐chrome无界面模式
aiohttp 提供异步web服务,顺便安装cchardet aiodns
下面装解析库,虽然提取信息方式多样,但写起来麻烦,不如强大的库,库还提供解析
解析库:
lxml 解析HTML /XML 支持XPath解析方式,且效率非常高
beautiful soup 解析HTML /XML,可以很方便的提取数据,有强大的API和多样的解析方式
pyquery 提供了和jQuery类似的语法来解析HTML文档,还支持CSS选择器
tesserocr 通过OCR对抗验证码,是对tesseract的再封装,先装后者
ps:(Optical Character Recognition 光学字符识别)扫描字符并转换成电子文本
一直失败。。。选择了替代的pytesseract
数据库
关系型如SQLite ,MySQL ,Oracle ,SQL Server ,DB2 按表存储
非关系型如 MongoDB Redis 键值对,更灵活
- MySQL 官网
- mongodb懒得装了
- redis还是装一下,还有可视化管理工具redis desktop manager
存储库
用来和python交互,MySQL需要PyMySQL, MongoDB需要PyMongo
我只下了PyMySQL
web库
搭建一些API接口供爬虫使用,比如维护一个代理池
- flask 轻量级web服务程序
- tornado 支持异步的web框架
APP爬取库
先不装了。。。
又是一堆。。。。还跟Android有关
爬虫框架
我们直接用requests , selenium等库写爬虫,当小型时很好,但写多了就有些麻烦和凌乱
上框架!这样我们只用关心爬取逻辑,而不是具体功能的实现!
- pyspider 失败。。。
- Scrapy要配合splash和其python库 成功。。
- scrapy-redius 成功。。
部署库
Docker 成功
容器技术,打包应用和环境,极大方便了应用服务的部署,
Scrapyd 部署和运行Scrapy的工具,针对linux,那没事了
cao
没装的有:
tessorocr 图形识别码,有替代
mongodb 和配套的,。。希望别用这破玩意
app 爬取库 。。我吐了
scrapyd 部署工具。。应该用不着吧
pyspider bug 。。还早
github项目
https://github.com/wistbean/learn_python3_spider