美文网首页
2018-11-21

2018-11-21

作者: 天宇在线 | 来源:发表于2018-11-21 00:24 被阅读0次

    网络爬虫涉及到的技术相关知识点很多,这里面我们罗列了一些基本的相关知识,以便我们逐个击破。下面是一张关于爬虫的知识结构图:

    爬虫技术相关知识

    获取网页技术,一般是通过一门语言来实现的。不管是C、C++、java、.net还是python都有自己的web通信库。我们讨论的则是关于python语言的爬虫工具。

    最常用的三个python爬虫库

    1、urllib库

    python内置的http访问库,这个库我平时用的相对较少,一般用于爬虫系统中的某个功能实现校验使用,原因是可以通过更简单易用的requests替代它。

    urllib

    2、requests库

    requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,脚本型的爬虫绝大多数使用这个库实现。

    Requests

    3、aiohttp库

    相比requests的阻塞式HTTP请求库,aiohttp是一个提供异步web服务的库(如果把requests想象成串行执行,那么aiohttp则是并行执行),asyncio可以实现单线程并发IO操作,通过aiohttp库实现的爬虫,运行效率高。

    2018-11-21

    最常用的三个python爬虫框架

    4、Scrapy框架

    Scrapy是一个为爬虫而生的应用框架,他的主要作用是提取结构性数据。支持异步网络通讯,Scrapy需要遵循他的爬虫编写规范,需要花费时间成本熟悉框架结构和规则。Scrapy真的很强大。

    Scrapy

    5、Selenium框架

    Selenium准确的将是用于做自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效。缺点就是爬虫的运行效率不高。

    Selenium

    6、Splash框架

    Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取。

    Splash

    附:框架与类库的区别主要表现在以下几个方面:

    1、从结构上说,框架内部是高内聚的,而类库内部则是相对松散的。

    2、框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。

    3、框架具有IOC(控制反转)能力,而类库没有。

    4、框架专注于特定领域,而类库却是更通用的。

    5、框架通常建立在众多类库的基础之上,而类库一般不会依赖于某框架。

    相关文章

      网友评论

          本文标题:2018-11-21

          本文链接:https://www.haomeiwen.com/subject/bvofqqtx.html