随着时代的发展爬虫技术也用得越来越多。
爬虫的领域也是巨大的,例如:搜索引擎、舆情分析与数据挖掘、导购、价格检测、黑产、灰产等等。
提示:以下是本篇文章正文内容,下面案例可供参考
爬虫,即网络爬虫,大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到自己的猎物(所需要的资源),那么它就会将其抓取下来。 比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。
这是一个很简单的爬虫
import requests
def crawl(url):
response = requests.get(url)
print(response.text)
if __name__ == '__main__':
url = 'https:www.baidu.com'
crawl(url)
Scrapy是一个基于py的爬虫框架、是一个快速的高级网页抓取和网页抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于广泛的用途,从数据挖掘到监控和自动化测试。
Scrapy框架主要由五大组件组成,分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)、Scrapy引擎(Scrapy Engine)。
1、调度器(Scheduler):
调度器,用来接受引擎发过来的请求,由过滤器重复的url并将其压如队列中,在引擎再次请求的时候返回,可以想象成一个URL(抓取网页的网址或者是链接)的优先队列,由他决定下一个要抓取的网址是什么,用户可以根据自己的需求定制调度器。
2、下载器
下载器,是所有组件中负担最大的,他用于高速地下载网络上的资源,Scrapy的下载器代码不会太复杂,但效率高(原因:Scrapy下载器建立在twisted这个高效的异步模型上的)
3、爬虫
爬虫是主要干活的,用户最关心的部分,它可以生成url,并从特定的url中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。
4、实体管道
负责处理爬虫从网页中抽取的实体,主要的功能是持久化的实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
5、引擎
Scrapy引擎是整个框架的核心。它用来控制调度器、下载器、爬虫。实际上,引擎相当于计算机的CUP,它控制着整个流程。对整个系统的数据流进行处理,触发事务(框架核心)。
详细步骤
1、spider中的url被封装成请求对象交给引擎(每一个对应一个请求对象)
2、引擎拿到请求对象之后,将全部交给调度器
3、调度器拿到所有请求对象后,通过内部的过滤器过滤掉重复的url,最后将去重后的所有url对应的请求对象压入到队列中,随后调度器读出其中一个请求对象,并将其交给引擎
4、引擎将调度器调出的请求对象交给下载器
5、下载器拿到该对象去互联网中下载数据
6、数据下载成功后会被封装到response中,随后response会交给到下载器
7、下载器将response交给引擎
8、引擎将response交给spider
9、spiders拿到response后调用回调方法数据解析,解析成功后生成item,随后spiders将item交给引擎
10、引擎将item交给管道,管道拿到item后进行数据的持久化存储