继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

爬虫基础

天上掉下个小馅饼
关注TA
已关注
手记 3
粉丝 7
获赞 3

爬虫基础

HTTP原理

  • URI和URL和URN

    • URI的全称为Uniform Resource Identifier,即统一资源标识符,URI包括URL和URN
    • URL的全称为Universal Resource Locator,即统一资源定位符,URL是URI的子集,每个URL都是URI,但不是每个URI都是URL
    • URN的全称为Universal Resource Name,即统一资源名称,URN只命名资源而不指定如何定位资源
    • 小总结

                  URI
                 /    \
             URL   URN    
      
  • 超文本

    • 我们在浏览器看到的网页就是超文本解析而成的,而网页的源代码HTML就可以称作超文本
  • HTTP和HTTPS

    • http和https是访问资源需要的协议类型
    • HTTP的全称是Hyper Text Transfer Protocol,中文名叫做超文本传输协议,HTTP协议是用于从网络传输超文本数据本地浏览器的传送协议
    • HTTPS的全称是Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此通过它传输的内容都是经过SSL加密的
  • HTTP请求过程

    • 这个过程是浏览器向网站所在的服务器放松了一个请求,网站服务器接收到这个请求后进行处理和解析,然后返回对应的相应,接着传回给浏览器
  • 请求

    • 请求:由客户端向服务端发出,可以分为4部分内容:
      • 请求网址
      • 请求方法:GET和POST,两者有如下区别
        • GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体
        • GET请求提交的数据最多只有1024字节,而POST方式没有限制
      • 请求头:
        • Accept:请求报头域
        • Accept-Language:指定客户端可接受的语言类型
        • Accept-Encoding:指定客户端可接受的内容编码
        • Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置
        • Cookie:为了辨别用户进行绘画跟踪而存储在用户本地的数据
        • Referer:此内容用来标识这个请求是从那个页面发过来的
        • User-Agent:在做爬虫时加上此信息,可以伪装为浏览器
        • Content-Type:互联网媒体类型,它用来表示具体请求中的媒体类型信息
      • 请求体
        • 请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空
  • 响应

    • 响应:由服务端返回给客户端,可以分为三部分:
      • 响应状态码:响应状态码表示服务器的响应状态
      • 响应头:响应头包含了服务器对请求的应答信息,下面简要说明一些常用的头信息
        • Date:标识响应产生的时间
        • Last-Modified:指定资源的最后修改时间
        • Content-Encoding:指定响应内容的编码
        • Server:包含服务器的信息,比如名称、版本名等
        • Set-Cookie:设置Cookies,响应头的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求
        • Expires:指定响应的过期时间
      • 响应体:响应的正文数据都在响应体中
  • 网页基础

    • 网页的组成:HTML,CSS和JavaScript
      • HTML:是用来描述网页的一种语言,其全称叫做Hyper Text Markup Language,即超文本标记语言
      • CSS:全称Cascading Style Sheets,即层叠样式表
      • JavaScript:是一种脚本语言,实现了一种实时,动态,交互的页面功能
      • HTML定义了网页的内容和结构,CSS描述了网页的布局,JavaScript定义了网页的行为
    • 网页的结构:
      • 开头用DOCTYPE定义了文档类型
      • 其外层是html标签,最后还有对应的结束标签来表示闭合
      • 其内部是head标签和body标签,分表代表网页头和网页体,它们也需要结束标签
      • head标签内定义了一些页面的配置和引用
  • 爬虫基本原理

    • 爬虫就是获取网页并提取和保存信息的自动化程序
    • JavaScript渲染页面:
      • 有时候,我们在用urlli或requests抓取网页时,得到的源代码实际和浏览器中看到的不一样,这是因为我们在用urllib或requests等库请求当前页面时,得到的只是这个HTML代码,并不会得到之后在JavaScript所渲染的内容
  • 会话和Cookies

    • 无状态HTTP:HTTP的无状态是指HTTP协议对事务处理是没有记忆能力的,服务器不会记录前后状态的变化
    • 会话:
      • 会话,其本来的含义是指有始有终的一系列动作/消息,如果用户还没有会话,则web服务器将自动创建一个会话对象
      • 会话在服务器端也就是网站的服务器,用来保存用户的会话消息
    • Cookies:
      • Cookies指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据
      • Cookies在客户端,也可以理解为浏览器端,有了Cookies,浏览器在下次访问网页时会自动附带上它发送给服务器
    • 会话控制:
      • 当客户端第一次请求服务器时,服务器会返回一个请求头中带有Set-Cookie字段的响应给客户端,用来标记是哪一个用户,客户端浏览器将Cookies保存起来
      • 当浏览器下一次请求该网站时,浏览器会把此Cookies放到请求头中一起提交给服务器,Cookies携带了会话ID信息服务器检查该Cookies即可找到对应的会话是什么,然后再判断会话来以此辨认用户状态
      • Cookies和会话需要配合,一个在客户端,一个在服务端,二者共同协作,就实现了登陆会话控制
    • 属性结构
      • Name:Cookie的名称,一旦创建,该名称便不可更改
      • Value:Cookie的值
      • Domain:可以访问该Cookie的域名,比如:如果设置为zhihu.com,则所有以zhihu.com结尾的域名都可以访问该Cookie
      • Max Age:该Cookie失效的时间,单位为秒,Max Age如果为正数,则该Cookie在Max Age秒之后失效,如果为负数,则关闭浏览器时Cookie失效,浏览器也不会以任何形式保存该Cookie
      • Path:该Cookie的使用路径,如果设置为/path/,则只有路径为/path/的页面可以访问该Cookie。如果设置为/,则本域名下的所有页面都可以访问该Cookie
      • Size字段:此Cookie的大小
      • HTTP字段:Cookie的httponly属性,若此属性为true,则只有在HTTP头中会带有此Cookie的信息,而不能通过document.cookie来访问此Cookie
      • Secure:该Cookie是否仅被使用安全协议传输,安全协议有HTTPS和SSL等,在网络上传输数据之前先将数据加密。默认为false
    • 会话Cookie和持久Cookie
      • 会话Cookie:把Cookie保存在浏览器内存中,只存在于浏览器会话期间
      • 持久Cookie:保存到客户端硬盘中,下次还可以使用
      • 严格来说,并没有会话Cookie和持久Cookie,只是由Cookie的Max Age或Expires字段决定了过期时间
  • 代理的基本原理

    • 代理实际上指的就是代理服务器
    • 如果使用了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向web服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给Web服务器,接着由代理服务器再把Web服务器返回的响应转发给本机
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP