模拟网络请求

发送 HTTP 请求

requests 模块

请求与响应

HTTP 就是发送请求和获取响应的一个过程,而 requests 模块只需要一步就能完成这样的一
个过程,并且 requests 支持所有的 HTTP 请求的方法和响应数据,先进行语法介绍。
r = requests.方法(url,headers,data,…)
其中 URL 参数是必填的,毕竟 HTTP 请求就是对指定的 URL 进行发送,其他各种参数可根
据实际请求的需要选择性使用。
发送请求后会获取响应结果,然后把结果赋值给变量,最后通过变量的属性值取出需要的结
果,下面是常用返回结果。
r.headers 获取返回的头信息
r.text 获取返回的主体
r.cookies 获取返回的 cookie
r.status_code 获取返回的状态码

请求参数

URL 参数
URL 是唯一的必填参数,既然是网络请求,必须要有 URL 地址才能发送,就像快递一定
要写目的地才能发件一样。先从最简单的 HTTP 请求讲起,请求一个静态页面,比如访问网
易首页,通过抓包可以看到该请求是用 get 方式发送的,所以要调用 requests get() 方法来发
送请求。
以网易首页作为请求例子,实例代码:
import requests 
test_url = "http://www.163.com" #将网易首页的 URL 赋值到变量 test_url 中(这样的好处在于看起来清晰,也方便代码今后的维护,只需要修改 test_url 对应的 URL 就行了)
response = requests.get(test_url) #在 get()方法中将变量 test_url 直接传入,即完成了带着 URL 的 get 请求(结果会赋值到变量 response 中,response 中包含了返回结果的所有数据,可以根据需要获取想要的数据)。
print (response.status_code)#获取并打印返回结果的状态码。
print (response.headers)#获取并打印返回结果的头信息
print (response.text)#获取并打印返回结果的内容

执行结果

 headers 参数

还是以网易首页作为例子,如果是 pc 端的请求,会返回 pc 端的页面,如果是手机端的请求,
则返回手机端的页面,这时候就要用带上 headers 参数的请求,通过浏览器的抓包工具可以看到
headers 有个字段“ User-Agent ”,而服务器就是根据这个字段来判断访问的来源,如果需要模拟
手机端请求,需要将“ User-Agent ”改为请求的手机型号。
实例代码:
import requests 
test_url = "http://www.163.com" 
h = {"User-Agent":"Android/H60-L01/4.4.2/"}#将需要发送的 headers 赋值到变量 h 之中
response = requests.get(test_url,headers = h) #在 get()方法中加一个 headers 的参数,然后将变量 h 赋值给 headers 参数,即完成了带着header 信息的 get 请求。
print (response.status_code)
print (response.headers)
print (response.text)

执行结果

运行后会发现请求的网页是手机网易网,而非 pc 端的网易网

 cookies 参数

cookies 也是最常用的参数之一,因为只要涉及登录后数据获取,都需要用到 cookies 参数,
那么如何获取 cookie 呢?一种是通过 post 发送登录请求,获取返回值的 cookies 属性(这个会在
后面的实例中讲解),还有一种就是通过浏览器的网络抓包的方式获取,在还不会熟练使用 requests 模块的前提下,就先介绍如何通过抓包获取 cookies 吧。
首先打开 chrome
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值