request模块的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

上一篇介绍了爬虫的基本概念。
本篇着重介绍request模块,爬虫入门


提示:以下是本篇文章正文内容,下面案例可供参考

一、request请求

以下是代码示例
务必亲自动手尝试

import requests#上一节讲过如何下载request模块,现在直接导入
url = 'https://www.ainicr.cn/qh/t8.html'#这是我们将要请求的网站
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}#这个叫做添加headers请求头,模拟ip地址,在程序请求次数过多时,网站会发现我们的爬虫程序。
def get_data():
    res = requests.get(url,headers=headers)
    res_text = res.text#这里注意要使用text来获取网页源码
    print(res_text)
if __name__ == '__main__':
    get_data()

1.1 request两种请求方式(Get\Post)

主要区别是带参数请求的时候
1、Get请求方式,参数通过 parms = data #d是在外部构建的参数。
2、Post请求方式,参数是通过 data = d 这种方式传入的。
两种请求方式的代码如下

import requests
data = {
    'name':'zhang',
    'age':10
}
url = 'http://httpbin.org/get'
r = requests.get(url,params=data)#这里使用Get方法请求的话,参数使用params来传入
print(r.status_code)
print(r.text)
import requests
d = {
    'name':'zhang',
    'age':10
}
url = 'http://httpbin.org/post'
r = requests.post(url,data=d)#使用Post方法请求,参数使用data传入
print(r.status_code)#查看响应状态码,成功为200
print(r.text)

二、获取json数据

1.先转换为字典类型,通过键名取键值

代码如下(示例):

import requests,json
d = {
    'name':'zhang',
    'age':10
}
url = 'http://httpbin.org/post'
r = requests.post(url,data=d)
a = r.text
# print(a)
# print(type(a))#<class 'str'>
#利用内置模块json
dict_json = json.loads(a)#通过json中loads方法转换为字典类型
print(type(dict_json))#<class 'dict'>
uRl = dict_json['url']
print(uRl)#http://httpbin.org/post  通过键名取键值

二、获取二进制数据

以下是代码示例

import requests,json
url = 'https://trademark.zbjimg.com/pattern-prod/2018/image_29/30902511.jpg'

r = requests.get(url)
res = r.content#使用content方法获取二进制数据
print(res)#b 获取到的数据前面有一个b 代表是bytes 二进制数据
print(type(res))#<class 'bytes'>
#下面演示保存在本地
with open ('tupian.png','wb')as f:
    f.write(res)

总结

主要讲解了 reques模块使用时需要注意的事项,涉及到很多小细节,务必自己动手尝试!!!

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值