1、爬虫的概念
spider (也叫网络蜘蛛),通过互联网上一个个的节点,进行数据的抓取。
爬虫分类
通用爬虫(了解)
主要提供给搜索引擎使用
搜索引擎(全网爬虫),百度、谷歌、360、搜狗、必应等
搜索引擎工作原理:
数据采集 --》 数据的存储 --》 搭建检索服务后台程序--》通过前端的用户提交检索关键字 --》后台检索启动(搜索引擎核心部分是采集这些数据)
如何采集数据?
1、爬虫采集(搜索引擎的爬虫(通用爬虫)根据网络的拓扑结构,不断的在整个互联网上进行爬虫)
2、主动的将网站提交给搜索引擎 (百度搜索提交url)
3、在其他的网站种设置友情链接
4、百度和DNS服务商合作
网站排名:
1、根据流量,谁点击量多谁在前
2、竞价排名,谁给的钱多谁排在前
robots协议:
搜索引擎的爬虫在爬取某个网站的时候,首先根据该网站的robots.txt文件来决定爬去哪些内容,robots文件中 不允许的内容,搜索引擎是不能爬的。主要提供给搜索引擎看的。
聚焦爬虫(重点)
根据用户或者客户的具体需求,去定制一些爬虫
聚焦爬虫工作原理
三个过程:
在这三个过程中,前两个过程中会遇到一些反爬机制,网站后台采取一定的措施去检测请求段是否为爬虫,并且阻止爬虫的访问
1、数据的抓取
面临的反爬:设置用户代理、禁止IP(检测IP的访问频率低于设定值,将面临反爬)、设置验证码等
2、数据解析
用到的技术: HTML 用xpath bs4解析
JSON 用jsonpath解析
XML 用xml解析
反爬:js数据加密、js动态网页(只有浏览器能加载数据)
3、数据的存储
存储阶段无反爬
存储:CSV、数据库、TXT文件、EXCAEL文件
为什么访问同个网站,网页版和移动端的内容和布局不一样? 因为设置了用户代理,反爬机制通过用户代理。如果不是火狐和移动端的访问,会面临反爬机制。
增量式爬虫
2、HTTP协议(面试的重点)
概念:超文本传输协议,基于C/S客户端模式请求与响应的协议,客户端发出请求,服务端对请求进行处理,并做出响应,HTTP协议无状态(不记录访问),通过url来进行通信
url:用于客服端和服务器交互的一个地址,也成为i网址,格式:https://www.baidu.com/kw=laolu,但这个不标准
(baidu.com一级域名)(baidu二级域名)
协议 ://主机名.域名:端口号/路劲?a=1&b=2...#锚点
一个网站的加载一般会伴随着多个url的HTTP请求,这些http请求主要是加载资源、css和js
请求和响应(核心):
请求头:包含本次请求的所有配置信息(如:数据格式、数据的大小,GET或者POST请求),告诉服务器请求数据的格式等信息
请求体:主要在url中或者表单中体现,告诉服务器提交的数据是哪些
响应头:提供客服端响应数据的相关配置格式等信息
响应体:响应的内容(HTML页面,JSON数据等)
扩展内容(面试题):
1.请您解释下什么是http协议?
2.请谈一下post请求和get请求?
3.http协议和https协议有什么不同
4.常见的http协议状态码?
3、环境
win7以上、python3.6、pycharm;后期(分布式) Linux、redis
2周爬虫内容简介:
基础框架:urllib库、requests库
解析方面:正则、xpath语法、bs4选择器、jsonpath、selenium+webdriver(解决动态加载)
原理:多线程原理、协程等原理
综合框架:Scrapy
分布式框架:scrapy_redis组件
反爬:用户代理、禁止ip、验证码、动态加载等
4、fiddler
会使用基本操作即可
网友评论