基本使用方法

import requestsurl = "https://www.baidu.com"
response = requests.get(url)
print(response.text) #打印源码的str类型的数据

但是我们发现运行程序之后会有乱码出现,原因是传输是test为byte类型,response.text 解释为 response.content.decode(“推测的编码类型”)

print(response.encoding)ISO-8859-1
import requestsurl = "https://www.baidu.com"
response = requests.get(url)
print(response.content.decode())

testcontent区别
response.test
str类型,解码类型为自动http头部响应推测

response.content
byte类型,解码类型没指定
可以用decode指定编码,默认为utf-8

也可以手动设定编码

import requestsurl = "https://www.baidu.com"
response = requests.get(url)
response.encoding = "utf-8"
print(response.text)

响应对象参数

import requestsurl = "https://www.baidu.com"
response = requests.get(url)print(response.url) #响应的url
print(response.status_code) #状态码
print(response.headers) #响应对应的请求头部
print(response.request.headers) #响应对应的请求头
print(response.cookies) #响应的cookie jarhttps://www.baidu.com/
200
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Mon, 28 Nov 2022 12:13:28 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:24:45 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}
{'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

可以看到这里的uesr-agent是以python模块去请求的

headers参数接受字典请求头

import requestsurl = "https://www.baidu.com"
head = {'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
response = requests.get(url,headers = head)
print(response.request.headers)

header中不仅仅用字典携带User-Agent,也可以携带cookie

带参数的请求

import requestsurl = "https://www.baidu.com/s?"data = {'wd' : 'python'
}
head = {'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}response = requests.get(url,headers = head,params = data)
print(response.url)
with open("baidu.html",mode='wb') as b:b.write(response.content)https://wappass.baidu.com/static/captcha/tuxing.html

可以看到百度的安全认证,这里还被识别到了,但已经有一层伪装了。被拦截原因是没有携带cookie参数

headers携带cookie参数
携带cookie不会被拦截

import requestsurl = "https://www.baidu.com/s?"
data = {'wd' : 'python'
}
head = {'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' ,'cookie' : "BIDUPSID=43D35F560169A9C65D8693129286F7D1; PSTM=1650964233; BAIDUID=43D35F560169A9C6DF7F57E2CBD0B4EA:FG=1; BDUSS=kZidjhuLXJvQjBwamdXbkdhWWh2MjBoMjJnYlJFbzBWdDcyamphZDQtSldqdnRpSVFBQUFBJCQAAAAAAAAAAAEAAABOUVn3stTT6rTzyMs1MTIwNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYB1GJWAdRic; BDUSS_BFESS=kZidjhuLXJvQjBwamdXbkdhWWh2MjBoMjJnYlJFbzBWdDcyamphZDQtSldqdnRpSVFBQUFBJCQAAAAAAAAAAAEAAABOUVn3stTT6rTzyMs1MTIwNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYB1GJWAdRic; BAIDUID_BFESS=43D35F560169A9C6DF7F57E2CBD0B4EA:FG=1; ZFY=pCNmkGR3rPGBgfDfqRoYcbGSRmmguuudGEcxgcMEtKQ:C; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; kleck=99e5b2a24ec5f84d72228354360e794a; H_PS_PSSID=36557_37550_37769_37139_37841_34813_37801_37761_37759_26350_37787; BA_HECTOR=0l21002k24agaka18k2002771hoapm41f"
}response = requests.get(url,headers = head,params = data)
print(response.url)
with open("baidu.html",mode='wb') as b:b.write(response.content)

cookie参数使用

import requestsurl = "https://www.baidu.com/s?"
data = {'wd' : 'python'
}
head = {'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
tmp = "BIDUPSID=43D35F560169A9C65D8693129286F7D1; PSTM=1650964233; BAIDUID=43D35F560169A9C6DF7F57E2CBD0B4EA:FG=1; BDUSS=kZidjhuLXJvQjBwamdXbkdhWWh2MjBoMjJnYlJFbzBWdDcyamphZDQtSldqdnRpSVFBQUFBJCQAAAAAAAAAAAEAAABOUVn3stTT6rTzyMs1MTIwNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYB1GJWAdRic; BDUSS_BFESS=kZidjhuLXJvQjBwamdXbkdhWWh2MjBoMjJnYlJFbzBWdDcyamphZDQtSldqdnRpSVFBQUFBJCQAAAAAAAAAAAEAAABOUVn3stTT6rTzyMs1MTIwNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYB1GJWAdRic; BAIDUID_BFESS=43D35F560169A9C6DF7F57E2CBD0B4EA:FG=1; ZFY=pCNmkGR3rPGBgfDfqRoYcbGSRmmguuudGEcxgcMEtKQ:C; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; kleck=99e5b2a24ec5f84d72228354360e794a; H_PS_PSSID=36557_37550_37769_37139_37841_34813_37801_37761_37759_26350_37787; BA_HECTOR=0l21002k24agaka18k2002771hoapm41f"
cookie_list = tmp.split(";")
cookies = { cookie.split("=")[0]:cookie.split("=")[-1] for cookie in cookie_list }response = requests.get(url,headers = head,params = data,cookies = cookies)
print(response.url)
with open("baidu.html",mode='wb') as b:b.write(response.content)

超时参数timeout
在有一些网站超时问题需要设置timeout

import requests
url = "https://www.baidu.com/s?"
response = requests.get(url,timeout=5)

代理参数使用

import requestsurl = "https://www.baidu.com/s?"
proxies = {"http" : "http://192.168.1.1:80" ,"https" : "https://192.168.1.1:443"
}#根据使用情况选择
response = requests.get(url,proxies=proxies)

verify参数使用
用于忽略CA证书

import requestsurl = "https://www.baidu.com/s?"
response = requests.get(url,verify=False)

python的requests使用相关推荐

  1. Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven

    今天在找Java的爬虫的库,发现Java的爬虫框架挺多的,常见的有nutch,Heritrix,crawler4j等. 但我想要的是类似Python的requests库的Java库. 看到一个库叫Un ...

  2. Python之Requests库的异常

    Python之Requests库的异常 参考文章: (1)Python之Requests库的异常 (2)https://www.cnblogs.com/BASE64/p/10285466.html 备 ...

  3. 关于python中requests模块导入问题-Python中requests模块的核心使用(1)

    简介: requests模块的底层实现其实还是urllib,但是urllib并不常用 requests库简单易用 快速上手 http://docs.python-requests.org/zh_CN/ ...

  4. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解

    有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...

  5. 关于python中requests模块导入问题-python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  6. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  7. Py之requests:python的requests包的简介、安装、使用方法详细攻略

    Py之requests:python的requests包的简介.安装.使用方法详细攻略 目录 requests包的简介 requests包的安装 requests包的使用方法 requests包的简介 ...

  8. python的requests模块功能_《Python数据可视化编程实战》—— 1.7 安装requests模块-阿里云开发者社区...

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第1章,第1.7节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  9. 在python中requests模块怎么安装_Python requests模块在Windows下安装

    发现一个爬虫库太方便了,而且支持python3! 安装方法在http://docs.python-requests.org/en/latest/user/install/#install很详细 只不过 ...

  10. pythonunittest接口测试_基于python+unittest +requests接口测试

    2019独角兽企业重金招聘Python工程师标准>>> 谈到接口测试,大家都不会感到陌生.接口测试的工具和实现方式也有很多,比如ant+jmeter+jemkins.postman. ...

最新文章

  1. leetcode897
  2. 从菜鸟到老鸟--Mac篇 [五]
  3. 公司的一些SEO面试题
  4. html placehonlder属性,HTML input placeholder 属性
  5. php正则实例,php 正则表达式实例详解(适合初学者)
  6. mongodb索引 多健索引
  7. Android游戏源码链接
  8. [视频教程] C语言全套视频教程(已更新完毕
  9. angular 子父页面传值以及调用方法
  10. 计算机添加启动程序,电脑的开机启动项怎么设置?
  11. 计算机网络没有接收什么情况,电脑网络连接失败 网卡只有发送没有接收该怎么办?...
  12. 胡凡算法之——快速幂
  13. labelme_json_to_dataset不能转换关键点的问题
  14. 复杂网络分析 03 ER网络学习笔记
  15. 2019年中国PPP管理库全项目数据
  16. 【vultr使用流程笔记】
  17. 五大开源Web代理服务器的横向点评
  18. 你见过哪些好用到爆的 Java 代码技巧?
  19. 【python爬虫】HIMCM2016 FedEx联邦快递的一日达地图
  20. 毕业设计-基于微信小程序平台开发样品管理系统

热门文章

  1. Win11 快捷键及触控板手势 —— 你不得不知
  2. Oracle操作手册
  3. 一加 gps android9,一加7、一加7 Pro详细规格参数:这才真香旗舰!
  4. UE4 跑酷游戏-提高速度
  5. 手机上支付宝沙箱环境安装
  6. 3dmax2022材质编辑器如何找标准类型
  7. 微信小程序 页面刷新 onshow强制执行
  8. 区块链:人类抵御人工智能盛行的最佳方案
  9. 2k2实用球员_nba2kol2平民球员有什么推荐?
  10. 文件批量整理归类的方法,按照类型进行归类的操作步骤