python中requests发送GET请求

目录

UA检测与伪装

request.get()中的参数

案例—百度搜索


UA检测与伪装

UA: User-Aaent(请求载体的身份标识)

UA检测:在用爬虫爬取数据的时候,我们需要进行UA伪装。因为门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某款浏览器说明该请求是个正常的请求。但是如果检测到请求的载体身份标识不是基于某款浏览器的。则表示该请求为不正常的请求(爬虫)。则服务器端就很有可能拒绝该请求。

UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器。所以我们需要自定义user-agent头部信息,来绕过UA检测,我们把它放入一个字典中

headers={
	'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}

request.get()中的参数

requests中发送get请求里面有几个基础的参数如下

requests.get(url=url,params=param,headers=headers)
  • url:目标url
  • params:查询参数,以字典的形式进行封装。requests会自动帮我们把这个参数拼接在接口请求地址中
  • headers:HTTP请求头部

案例—百度搜索

我们输入一个关键词就可以进行百度搜索,然后获取搜索到的页面信息。

方法一

1. url观察

我们搜索校园,观察到url是很长的一段字符,其实里面很多字符是不需要的,我们可以删除

简化url,我们可以把url简化成如下样子,wd值为搜索的关键字,pn值代表当前显示的所在的页面数

 2. 编写代码

查询url携带了两个参数一个是wd另一个是pn,我们将其以字典的形式封装,然后赋值给params参数。requests会自动帮我们把这个参数拼接在接口请求地址中

import requests
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
url='https://www.baidu.com/s'
content = input('请输入您想查询的词:')
param = {
    'wd':content,
    'pn':0
}
response = requests.get(url=url,params=param,headers=headers) #三个参数
ctx = response.text

with open('1.html','w',encoding='utf-8') as df:
    df.write(ctx)
print('保存成功')

爬取保存后数据如下


方法二

对于GET请求我们也可以不使用params参数,直接使用格式化输出方法在url中进行参数拼接就行

import requests
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
content = input('请输入您想查询的词:')
url=f'https://www.baidu.com/s?wd={content}&pn=0'     #格式化输出拼接

response = requests.get(url=url,headers=headers) 
ctx = response.text

with open('1.html','w',encoding='utf-8') as df:
    df.write(ctx)
print('保存成功')

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

谢北先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值