爬虫的前导知识及requests模块

目录

爬虫的前导知识

端口

通讯协议

网络模型

抓包工具

HTTP的请求和响应

Request Headers(重点)

Query String Parameters

爬虫的四个基本步骤

requests模块的运用

urllib vs requests

渲染

requests常用方法

get 和post请求的优缺点

requests设置代理ip

处理不被信任证书的网站


爬虫的前导知识

端口

每一个应用程序都有自己独立的标识 这个标识我们称之为端口

mysql 3306
mongodb 27017

通讯协议

TCP/IP 国际组织定义的通用的通信协议
HTTP 超文本传输协议 通讯协议 80  html 超文本标记语言 超文本(网页源代码html)

网络模型

https = http + ssl  是以安全为目标的http通道  443
- http的安全版本 ssl是用于web的安全传输协议
- http和ssl是在应用层的

抓包工具

Elements 元素 网页源代码 用来提取和分析数据的 可以用来分析页面结构 分析数据
Console 控制台 后期分析js代码的时候 可以通过打印来找规律 前期用不着
Sources 资源 信息的来源 整个网站加载的资源 分析js代码的时候使用 进行调试 前期用不着
network(很重要) 网络工作(数据抓包) 服务器和客户端的交互记录都在network里面,客户端发起请求以及服务器返回响应在network里面都是可以找得到的

HTTP的请求和响应

Request URL 请求的地址
Request Method 请求的方式(get post 一般我们看到的是啥请求方式就用啥请求方式 但有时也要具体情况具体分析)
Status Code 状态码
    
静态加载的页面 数据都在网页源码中
动态加载的页面 Requests URL(目标url)是需要去network中分析数据包才能找到的 response看响应的结果

Request Headers(重点)

headers请求头 = {
    请求方式 目标url (不加)
    Host: www.baidu.com 域名 (可加可不加)
    Connection: keep-alive 长连接 (不加)
    User-Agent: 用户代理(操作系统、浏览器和浏览器版本号) 一般是反反爬的第一步 (加)
    Accept-Encoding: gzip, deflate (不加 加了数据可能会出现问题)
    Cookie:xxx 记录 用户信息,用于爬取登陆后才能访问的网站 (加不加看情况) 一般有时间限制
    Referer:xxx 页面跳转 记录了当前页面是由哪个页面(url)过来的,可以用于反反爬(加不加看情况)
}

Query String Parameters

有url中的所有参数

爬虫的四个基本步骤

  • 解析网页(确定数据在哪个网页)

  • 发送请求

  • 解析数据

  • 保存数据

requests模块的运用

urllib vs requests

  1. requests不需要处理中文
  2. requests不需要拼接url地址
  3. requests直接用get方式就可以传递headers

渲染

服务器端渲染:
    能够在网页源码中看到数据
客户端渲染:
    不能够在网页源码中看到数据

requests常用方法

encoding                       #获取当前的编码
encoding = 'utf-8'             #设置编码
text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
content                        #以字节形式(二进制)返回。
get(url,headers=headers,verify=false,proxies={'http':'194.5.193.183:80'},timeout=1)

get 和post请求的优缺点

  1. post 请求获取数据量更大(url长度有限制)
  2. post获取数据类型更多
  3. post 更加安全,get的参数在网址里
  4. post请求比get慢

requests设置代理ip

作用:

  1. 隐藏真实的ip
  2. 反爬策略

代理ip的匿名度:

  1. 透明 服务器知道你使用了代理ip 也知道你的真实ip
  2. 匿名 知道你使用了代理ip 但不知道你的真实ip
  3. 高匿 不知道使用了代理ip 也不知道真实ip

如何查ip:

  1. cmd-->ipconfig 内网ip 私有的地址 局域网 
  2. https://www.ipip.net/ 外网 能够用于上网的ip  http://httpbin.org/ip

处理不被信任证书的网站

https://inv-veri.chinatax.gov.cn/

需求:向一个不被SSl信任的网站发起请求 爬取数据
目标url:https://inv-veri.chinatax.gov.cn/

SSL证书:数字证书的一种 配置在服务器上面的
SSL证书的特点:遵循了SSL协议 由收信任的数字证书颁发机构 验证身份之后颁发的证书
             同时具有服务器身份验证和数据传输加密功能

requests verify:true(默认)  改为false

SSL证书的发展历程:
为啥网站会出现SSL证书? 具有服务器身份验证和数据传输加密的功能
https = http + ssl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依恋、阳光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值