爬虫-4-浏览器发送http的过程

复习:http和https,django flask中讲到过

为了更好的模拟浏览器发送请求
在这里插入图片描述

http概念

  • 超文本传输协议,
    协议:客户端向服务端请求数据,要有一定的格式,每行都有特定的格式。
    数据都是明文进行传输
  • 默认端口号:80
    在搜索引擎地址栏中输入网址,有的网址是http://,如果请求网站时不写端口,会默认是80,写上80效果也是一样的,例如:http://news.ifeng.com/ 凤凰网 http://news.ifeng.com/:80

https概念

  • HTTP+SSL(安全套接字层)
    数据的加解密,数据传输过程中不是明文
  • 默认端口号:443

https比http更安全,但性能更低。
之前在Django和flask项目中启动web服务,可以用80,但没用过80端口,因为80是小于1000的,启动不起来,需要超级管理员权限才可以用,加sudo启用,启用之后就不用再写端口了,默认就是80和443

浏览器发送http的过程

在这里插入图片描述

  • DNS服务器
    实现域名的解析。可以拿着ip地址直接请求,但是记不住太多的ip地址,所以选择记域名。
  • 请求网站时是如何返回数据的
    后面学习会以谷歌浏览器为主
    找到一个页面,www.taobao.com,右击“检查”/“审查元素”-network,F5刷新一下,会看到有很多请求,抓包。

实际中只请求了一个URL地址,但是network中出来很多URL请求,因为最初请求到数据后,会加载渲染到页面上,但是有些数据是没有的(图片等),所有会再次请求数据。然后会把所有的数据放在一起渲染,就是最终我们页面上看到的样子。看到的样子就是elements里的内容,(前端中讲过,需要调样式的时候看elements)。
在这里插入图片描述
respons:当前URL请求对应的响应
preview:对响应做的预览,对字符串来讲是没有任何效果的。
headers:请求头部的信息

  • 当前请求的respons和elements是不一样的。elements会加载js,图片,css,已经当前URL的响应;respons对应的只是当前URL的响应。respons中可能没美容,elements会加载js重新发送ajax请求得到。

爬虫只会发送当前一个URL的请求,得到一个响应,不会主动请求js css 图片
即使拿到一个js的 url,respons中也只是得到字符串,是不会执行js里的内容的。
在这里插入图片描述

所以写爬虫时,要根据当前的URL对应的response为准。
如果爬虫拿不到数据,说明数据在其他URL中(比如ajax请求中),还有可能是数据通过js生成的(部分数据在响应中,全部通过js生成的)。

浏览器渲染出的页面(包含js加载的,js可以动态加载数据)和爬虫请求的URL页面不一样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值