IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Python爬虫学习笔记(2022 - 04:get请求的发送与quote的使用 -> 正文阅读

[网络协议]Python爬虫学习笔记(2022 - 04:get请求的发送与quote的使用

1、get请求的参数

? ? ? ? 在向服务器请求数据的时候,我们经常采用的请求类型有get或者post请求两种,两者最大的区别的就是请求参数的位置,get请求的请求参数通常直接拼接在url地址上,而post请求的请求参数通常放在请求体中,本章我们只简要介绍一下get请求的相关内容。

? ? ? ? get请求参数的格式:url?a=1&b=2&c=three

????????后面红色的部分就是请求参数,那请求参数具体有什么用呢?比如我们在登录的时候,服务器怎么知道我是这个号,而不是另一个号呢?就是通过咱们传过去的账户(account)和密码(password)来辨别的,那浏览器怎么向服务器传递咱们输入的信息呢?就是通过请求携带参数。比如我在某度搜索里面搜索波吉,看看搜索完成页面的url。

? ? ? ? ?上图红色划线的部分就是咱们的请求参数,我们可以看到有wd、rsv_spt......等,按F12打开开发者模式,按下图红色部分点击,我们也可以看到所有的请求参数,那哪个请求参数是最关键的呢?肯定是我们输入的wd=波吉呗!

?2、向服务器发送get请求

? ? ? ? 事实上爬虫向服务器发送get请求和前几章的代码没有丝毫改变,只需要我们在原本url的后面拼接上咱们的请求参数就ok了!

# written by cy on 2022-01-09 17:22
import urllib.request

#需求:获取https://www.baidu.com/s?wd=周杰伦的网页源码

url = 'https://www.baidu.com/s?wd='

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}

name='周杰伦'

url+=name

request = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(request)

content = response.read().decode('utf-8')

print(content)

? ? ? ? 运行一下试试!

? ? ? ? ?不出所料地出错了,为啥会出错呢?通过提示我们知道,是编码错误,熟悉编码的朋友肯定知道是中文出错了,那咱们怎么解析中文呢,就要引入一个新的库了:urllib.parse

3、Urllib.parse的使用

? ? ? ? 事实上Urllib.parse的使用非常简单,一行代码就搞定了!

import urllib.parse
name = urllib.parse.quote('周杰伦')

? ? ? ? ?现在的name就已经是二进制的编码格式了。咱们再拼接一下发送请求试试:

? ? ? ? 这下就有数据了!?

4、完整代码

# written by cy on 2022-01-09 17:22
import urllib.request
import urllib.parse

#需求:获取https://www.baidu.com/s?wd=周杰伦的网页源码

url = 'https://www.baidu.com/s?wd='

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}

#将周杰伦三个字变成unicode编码
#我们需要urllib.parse
name = urllib.parse.quote('周杰伦')

url+=name

request = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(request)

content = response.read().decode('utf-8')

print(content)

?下一次就和大家分享如何发送post请求噢!觉得有用的点个👍再走 蟹蟹大家 byebye~?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:49:32  更:2022-01-17 11:49:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 9:20:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码