总结

什么是爬虫网络爬虫?
是一种按照一定的规则,自动抓取万维网信息的程序或者脚本

爬虫的用途?
搜索引擎
咨询新闻网站
购物助手(慧慧购物)
数据分析与研究积累原始数据资源
抢票软件等

爬虫的分类?
通用爬虫
(搜索引擎抓取系统(百度、谷歌、雅虎等)的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份)
第一步:搜索引擎爬虫抓取网页流程
1.首先选取一部分的种子URL,将这些URL放入待抓取URL队列;
2.取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
3.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环.

	第二步:数据存储
		搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。
	
	第三步:预处理

		搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。
			提取文字、中文分词等

	第四步:提供检索服务,网站排名


Robots协议:
	搜索引擎蜘蛛:一般需要准守Robots协议

	Robots协议:(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,


聚焦爬虫:
	聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

七层协议??

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输

应用层
表示层
会话层
传输层 (TCP、UDP)
网络层
数据链路层
物理层

四层协议、五层协议

HTTP与HTTPS

URI、URL、URN

URL 的组成部分
scheme:协议(例如:http, https, ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是走协议默认端口,缺省端口80)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定锚点位置)
http://127.0.0.1:8000/artical/?name=‘snclas’&page=1&pagesize=10#category

http://127.0.0.1:8000/artical/?name='snclas'&page=2&pagesize=10

常用的请求报头

1,user-agent(浏览器名称)

User-Agent:是客户浏览器的名称,以后会详细讲

2,Cookie

Cookie:浏览器用这个属性向服务器发送Cookie.Cookie是在浏览器中七寸的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能

3,Referer(页面跳转处)

Referer:表明产生请求的网页来自于哪个URL,用户是该Referer页面访问到当前请求的页面,这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

有时候遇到下载某网站图片,需要对应的referer,否则无法下载图片,那是因为人家做了防盗链,原理就是根据referer去判断是否是本网站的地址,如果不是则拒绝,如果是,就可以下载;

Cookie 和 Session:

服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。

为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。

cookies和session,会话保持

cookies: 通过在客户端记录的信息确定用户的身份。
session: 通过在服务器端记录的信息确定用户的身份。

响应的状态码

100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
2XX:表示服务器成功接收请求并已完成整个处理过程。
200:(OK 请求成功)
3XX:未完成请求,客户端进一步细化请求。(例如:请求的资源已经移动一个新地址)

常用
301:永久重定向
302:临时重定向(所请求的页面已经临时转移至新的url)
4XX:客户端的请求有错误
400:错误请求,服务器无法解析请求
401:未授权,没有进行身份验证
403:服务器拒绝访问
404:服务器无法找到被请求的网页
405:请求方式不被允许
408:请求超时
5XX:服务器端出现错误
500:服务器内部错误
501:服务器不具备完成请求的功能
503:服务器不可用

urllib高级用法(设置代理)

代理的作用:

  • 1,突破自身IP访问的限制,访问一些平时不能访问的站点。
  • 2,提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也讲偶保存到缓冲区中,当其他用户在访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  • 3,隐藏真实IP:上网者也可以通过这种方式隐藏自己的IP,免受攻击,对于爬虫来说,我们用代理就是为了隐藏自身IP,防止自身的IP被封锁。

cookiejar 库

该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。其实大多数情况下,我们只用CookieJar(),如果需要和本地文件交互,就用 MozillaCookjar()

CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。

MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。
登录一般都会先有一个HTTP GET,用于拉取一些信息及获得Cookie,然后再HTTP POST登录。

##模拟登陆要注意的:

HTTP POST登录的链接有可能是动态的,从GET返回的信息中获取。
password 有些是明文发送,有些是加密后发送。有些网站甚至采用动态加密的,同时包括了很多其他数据的加密信息,只能通过查看JS源码获得加密算法,再去破解加密,非常困难。
大多数网站的登录整体流程是类似的,可能有些细节不一样,所以不能保证其他网站登录成功.

##代理分类:

  • 1 根据协议划分:

FTP代理服务器:主要用户访问FTP服务器,一般有上传,下载的功能以及缓存的功能,端口号一般为21,2121等。
HTTP/HTTPS代理服务器:主要用于访问网页,一般有内容过滤和缓存的功能,端口号一般为80、8080、3128等
SOCKS代理:只是单纯的用于传输数据包,不关心具体的协议用法,速度快、有缓存功能,端口号一般为1080

  • 2 .根据匿名内容划分:

高度匿名代理:会将数据包原封不动的转发,在服务器看来就好像真的是一个普通的用户短在的访问,而记录的IP就是代理服务器的IP

普通匿名代理: 会在数据包上做一些改动,服务端上有可能发现这个是代理服务器,也有一定的几率追查到客户端的真是IP

透明代理:不但改动了数据包,还会告诉服务器客户端的真是IP,这种代理除了用缓存技术提高浏览器速度,能用内容过滤提高安全性职位,并没有其他作用

透明代理:不但改动了数据包,还会告诉服务器客户端的真实IP,这种代理除了用缓存技术提高浏览器速度。能用内容过滤提高安全性之外,并没有其他作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值