爬虫的概念:mysql
爬虫,又称网页蜘蛛或网络机器人。ajax
爬虫是模拟人操做客户端,向服务器发起网络请求,抓取数据的自动化程序或脚本。正则表达式
1.模拟:用爬虫程序假装人的行为,避免被服务器识别为爬虫程序。redis
2.客户端:浏览器,app均可以实现人与服务器之间的交互行为,应用客户端从服务器获取数据。sql
3.自动化:数据量较小时能够人工获取数据,但每每在公司中爬取的数据量在百万条,千万条级别的,因此要程序自动化获取数据。数据库
爬虫的价值 :
互联网中最有价值的就是数据
爬虫中首要任务就是要经过网络取获取模板服务器的数据;来为本身创造价值编程
爬虫的流程:
首先明确 咱们的爬虫是客户端 要爬的数据在服务器上存储,
因此须要借助网络编程,底层的网络协议已经有现成的封装不须要本身写,
数据传输已经解决,问题是对方给个人数据我能不能看懂 个人数据对方能不能看懂
绝大多数网络传输都是采用的HTTP(*****)json
爬虫分类:浏览器
1. 通用爬虫
实例:百度,google
功能:访问网页->抓取数据->数据处理->提供检索服务服务器
2. 聚焦爬虫:
概念:
1):聚焦爬虫是指针对某一领域根据特定要求实现的爬虫程序,抓取须要的数据(垂直领域爬取)。
设计思路:
1):肯定爬取的url,模拟浏览器向服务器发送请求获取响应数据
2):进行数据解析-->目标数据
3):将目标数据持久化到本地-->存起来
HTTP 协议 超文本传输协议:
1.明确要爬取的url地址
2.发送请求
浏览器发送请求
第三方requests模块 pip install requests
内置的urllib模块selenium (自动化测试模块)
用程序驱动浏览器发送请求针对移动app可使用代理服务器
能够截获app端发送的请求信息 Charles(青花瓷)之因此用selenium是由于一些网站须要人机交互(点击,拖拽等等操做)
针对移动app可使用代理服务器 能够截获app端发送的请求信息 Charles(青花瓷)
3.接收响应
浏览器接受相应后会渲染页面进行展现 没法拿到数据 因此更多状况下使用用浏览器来分析请求详情
requests和urllib都会直接返回响应体
selenium 提供了find_element***的接口用于获取数据
4.解析数据
re
BeautifulSoup 封装了经常使用的正则表达式
移动端返回的/ajax返回的json数据 直接json.load
5.存储数据
mysql等 关系型数据库
MongoDB redis 非关系型数据库 通常用在高并发爬虫中
数据采集:
大数据时代来临,数据就是核心,数据就是生产力,愈来愈多的企业开始注重收集用户数据,而爬虫技术是收集数据的一种重要手段。
数据的获取:
网络公共资源都是为用户准备的,为了不被爬虫采集,服务端会设置很是多的图灵测试,阻止爬虫的恶意爬取,也便是反爬措施。爬虫开发工程师在开发爬虫时,须要解决这些反爬措施。咱们在开发爬虫的过程当中,有很大一部分的工做就是处理这些反爬措施。
采集的速度: 大数据时代,须要巨大的数据量,动辄千万条的级别,甚至上亿条。若是采集速度跟不上,耗时过长,那么就达不到商业要求。通常咱们会采起并发以及分布式来解决速度上的问题。这也是爬虫开发过程当中的另一个重心。