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~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

he1ll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值