crawler


网络爬虫实战3

对大数据的获取,处理和分析,以及基于大数据的智能应用,已成为提高竞争力的关键因素

我们需要的数据大多源于各个网站,但是不同网站结构不一,布局复杂,渲染方式多样

有的网站还采取了一系列“反爬”,我们也需要针对的反制措施!

爬虫是服务机器学习和人工智能发展非常重要的技术!为其提供优质的数据

崔佬提供了多种安装python库的方式:

  • pip/conda
  • wheel
  • 去官网/github下载源码再安装

爬虫可以简单分为:爬取页面,分析页面,存储数据

请求库:

  1. requests: 爬取html

  2. Selenium 自动化测试,驱动浏览器执行某些(点击,下拉)操作,渗透JS渲染

    但还要配置浏览器,此处用最好的ChromeDriver,先更新chrome

    下载后直接放进环境的Scripts里面,或者单独设置环境变量

  3. PhantomJS 无界面,可脚本编程的webkit浏览器引擎,被selenium弃用了,推荐chrome无界面模式

  4. aiohttp 提供异步web服务,顺便安装cchardet aiodns

下面装解析库,虽然提取信息方式多样,但写起来麻烦,不如强大的库,库还提供解析

解析库:

  1. lxml 解析HTML /XML 支持XPath解析方式,且效率非常高

  2. beautiful soup 解析HTML /XML,可以很方便的提取数据,有强大的API和多样的解析方式

  3. pyquery 提供了和jQuery类似的语法来解析HTML文档,还支持CSS选择器

  4. tesserocr 通过OCR对抗验证码,是对tesseract的再封装,先装后者

    ps:(Optical Character Recognition 光学字符识别)扫描字符并转换成电子文本

    一直失败。。。选择了替代的pytesseract

数据库

关系型如SQLite ,MySQL ,Oracle ,SQL Server ,DB2 按表存储

非关系型如 MongoDB Redis 键值对,更灵活

  1. MySQL 官网
  2. mongodb懒得装了
  3. redis还是装一下,还有可视化管理工具redis desktop manager

存储库

用来和python交互,MySQL需要PyMySQL, MongoDB需要PyMongo

我只下了PyMySQL

web库

搭建一些API接口供爬虫使用,比如维护一个代理池

  1. flask 轻量级web服务程序
  2. tornado 支持异步的web框架

APP爬取库

先不装了。。。

又是一堆。。。。还跟Android有关

爬虫框架

我们直接用requests , selenium等库写爬虫,当小型时很好,但写多了就有些麻烦和凌乱

上框架!这样我们只用关心爬取逻辑,而不是具体功能的实现!

  1. pyspider 失败。。。
  2. Scrapy要配合splash和其python库 成功。。
  3. scrapy-redius 成功。。

部署库

  1. Docker 成功

    容器技术,打包应用和环境,极大方便了应用服务的部署,

  2. Scrapyd 部署和运行Scrapy的工具,针对linux,那没事了

cao

没装的有:

tessorocr 图形识别码,有替代

mongodb 和配套的,。。希望别用这破玩意

app 爬取库 。。我吐了

scrapyd 部署工具。。应该用不着吧

pyspider bug 。。还早

github项目

https://github.com/wistbean/learn_python3_spider

MOOC课程

Requests

image-20210916004253383

文章作者: Darren
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Darren !
评论
  目录