千家信息网

如何进行基于pycharm的requests库使用

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇文章为大家展示了如何进行基于pycharm的requests库使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。requests库安装和导入第一步:cmd
千家信息网最后更新 2025年11月16日如何进行基于pycharm的requests库使用

本篇文章为大家展示了如何进行基于pycharm的requests库使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

requests库安装和导入

第一步:cmd打开命令行,使用如下命令安装requests库。

pip install requests

由于我的安装过了,所以如下:


如果提示你pip版本需要更新,按照提示的指令输入即可更新。

第二步:cmd使用如下命令,验证requests库安装完成。

pip list

第三步:在pycharm中,点击file——settings——project——python interpreter——点击+号——搜索requests——install package!

第四步:在你写的.py文件中,使用如下命令导入即可。

import requests

requests库的一个类型六个属性

import requestsurl = "https://www.baidu.com"response = requests.get(url=url)# 一个类型六个属性# 类型print(type(response))# 设置响应的编码格式response.encoding = 'utf-8'# 以字符串的形式返回网页的源码print(response.text)# 返回一个url地址print(response.url)# 返回的是二进制数据print(response.content)# 返回相应的状态码print(response.status_code)# 返回的响应头print(response.headers)

输出结果如下:

 百度一下,你就知道  

关于百度 About Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 


post一般是表单请求,如果你直接在百度搜一个东西,那是get请求奥!

requests库的get请求

首先将代码写出来,然后根据代码给大家将对应的知识点,算是入门。

import requestsurl = "https://www.baidu.com/s?"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'}data = {    'wd': '北京'}# url请求路径 params参数 kwargs字典response = requests.get(url=url, params=data, headers=headers)# 参数使用params传递,且参数无需url encode编码 ,且参数也不需要对象定制,请求资源路径中的?可加可不加print(response.text)

第一步:首先来看requests库的get方法使用及参数含义。

response = requests.get(url=url, params=data, headers=headers)

url表示请求路径,params表示参数,kwargs表示字典。

参数使用params传递,且参数无需url encode编码 ,且参数也不需要对象定制,请求资源路径中的?可加可不加。

第二步:下面演示一下,这三个参数怎么传递。

接下来的讲解,学过前端的应该都知道怎么弄吧?

右键检查——选择如下——然后刷新

这个地方是我们请求的url!

这个地方是我们传递的数据params!

可能很多人会找From Data,这个地方应该是PayLoad,注意一下!

这个地方是我们传递的字典!

选择下面的user agent,其中有我们的浏览器相关信息。

在上述中,应该注意,由于get的后两个其实都是用python中的字典的形式存储的,所以获取数据后,注意一下格式。

第三步:我们来看看有没有数据,可以在输出地方,使用ctrl + f来搜索验证我们想要的内容在不在。

requests库的post请求

首先将代码写出来,然后根据代码给大家将对应的知识点,算是入门。

import requestsurl = "https://fanyi.baidu.com/sug"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'}data = {    'kw': 'eye'}# url请求路径 data请求参数 kwargs字典response = requests.post(url=url, data=data, headers=headers)# 参数使用data传递,且参数无需url encode编码 ,且参数也不需要对象定制print(response.text)

输出结果:

{"errno":0,"data":[{"k":"eye","v":"n. \u773c\u775b; \u89c6\u529b; \u773c\u72b6\u7269; \u98ce\u7eaa\u6263\u6263\u773c vt. \u5b9a\u775b\u5730\u770b; \u6ce8\u89c6; \u5ba1\u89c6; \u7ec6\u770b"},{"k":"Eye","v":"[\u4eba\u540d] \u827e; [\u5730\u540d] [\u82f1\u56fd] \u827e\u4f0a"},{"k":"EYE","v":"abbr. European Year of the Environment \u6b27\u6d32\u73af\u5883\u5e74; Iwas"},{"k":"eyed","v":"adj. \u6709\u773c\u7684"},{"k":"eyer","v":"n. \u6ce8\u89c6\u7684\u4eba"}]}

第一步:首先来看requests库的post方法使用及参数含义。

response = requests.post(url=url, data=data, headers=headers)

这里的参数和get方法还有点不同,我们想看详细的话可以这样看,在pycharm中选中方法,即可看到提示。

url表示的是请求路径,data表示的是请求参数,kwargs表示的是字典。

其实难点在于怎么找这个url奥!!即哪一个是我们想要的url!!下面以百度翻译为例!!

我圈起来的这些地方,一定要注意,选中Preserve log!!

就在左边的Name中找,如果其对应的这个PayLoad中的kw和我们搜索的一致,那就是的啦!!!

第二步,可能返回的数据我们也看不懂,那就转换成json的格式来看就行啦!!

import requestsimport jsonurl = "https://fanyi.baidu.com/sug"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'}data = {    'kw': 'eye'}# url请求路径 data请求参数 kwargs字典response = requests.post(url=url, data=data, headers=headers)obj = json.loads(response.text, encoding='utf-8')print(obj)

输出结果:

{'errno': 0, 'data': [{'k': 'eye', 'v': 'n. 眼睛; 视力; 眼状物; 风纪扣扣眼 vt. 定睛地看; 注视; 审视; 细看'}, {'k': 'Eye', 'v': '[人名] 艾; [地名] [英国] 艾伊'}, {'k': 'EYE', 'v': 'abbr. European Year of the Environment 欧洲环境年; Iwas'}, {'k': 'eyed', 'v': 'adj. 有眼的'}, {'k': 'eyer', 'v': 'n. 注视的人'}]}

requests库的代理

代理主要处理的是,我们在模拟浏览器给服务器发送请求的时候,我们高速的快速的高频次的访问某个网站,那样的话网站会崩溃的,所以会把我们的ip封掉,那我们怎么办呢?换ip地址就好啦!

import requestsurl = "https://www.baidu.com/s?"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'}data = {    'wd': 'ip'}response = requests.get(url=url, params=data, headers=headers)with open('daili.html', 'w', encoding='utf-8') as fp:    fp.write(response.text)

就会发现写了这个文件!

requests库的cookie

我们是以古诗文网为例!

我们现在想要实现的功能就是,不用登录,直接进入内部的页面。

# 通过登录进入主页面# 通过找登录接口 我们发现需要的参数很多"""__VIEWSTATE: 9Y4yHRQS2k2z739MJJ/8Z0sKfZNltkFId83Z8jCtY3g00xYgg9bsv5oK+KT5DypNl37KWa0IyB+uOwrRPBvTybqGLDdd0chyrWLxhhlHBeAGWL/SLTGYfOh6L1M=__VIEWSTATEGENERATOR: C93BE1AEfrom: http://so.gushiwen.cn/user/collect.aspxemail: 13237153218pwd: wxm20010428code: PDBGdenglu: 登录"""# 我们观察到__VIEWSTATE __VIEWSTATEGENERATOR code是一个可以变化的量# __VIEWSTATE __VIEWSTATEGENERATOR 看不到的数据一般都是在页面的源码中# 我们观察到其在页面源码中 所以我们需要获取页面源码 然后进行解析就可以获取了# code是验证码import requests# 登录url页面url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'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'}response = requests.get(url=url, headers=headers)# print(response.text)# 解析页面源码 然后获取__VIEWSTATE __VIEWSTATEGENERATORfrom bs4 import BeautifulSoupsoup = BeautifulSoup(response.text, 'lxml')# 获取__VIEWSTATEviewstate = soup.select('#__VIEWSTATE')[0].attrs.get('value')# 获取__VIEWSTATEGENERATORviewstategenerator = soup.select('#__VIEWSTATEGENERATOR')[0].attrs.get('value')# print(viewstate)# print(viewstategenerator)# 获取验证码图片code = soup.select('#imgCode')[0].attrs.get('src')# print(code)code_url = 'https://so.gushiwen.cn' + code# print(code_url)# 获取验证码的图片后 下载到本地 然后观察验证码 观察之后 然后在控制台输入这个验证码 就将这个值给code# 怎么下载???# import urllib.request# 此处和后面的请求不是同一个请求 验证码就变了# urllib.request.urlretrieve(url=code_url, filename='code.jpg')# request里面有一个方法session() 通过session的返回值就能使请求变成一个对象session = requests.session()response_code = session.get(code_url)# 注意此处使用二进制数据 因为我们要是图片的下载content_code = response_code.contentwith open('code.jpg', 'wb') as fp:    fp.write(content_code)code_name = input('请输入验证码:')# 点击登录url_post = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'data_post = {    '__VIEWSTATE': viewstate,    '__VIEWSTATEGENERATOR': viewstategenerator,    'from': 'http://so.gushiwen.cn/user/collect.aspx',    'email': '13237153218',    'pwd': 'wxm20010428',    'code': code_name,    'denglu': '登录',}response_post = session.post(url=url_post, headers=headers, data=data_post)with open('gushiwen.html', 'w', encoding='utf-8') as fp:    fp.write(response_post.text)

首先我们打开这个古诗文网的登录页面(假设已经都注册过了),现在我们要输入正确的账号,错误的密码,正确的验证码,点击登录,但是在提示后不要点击确定,否则页面会跳转,然后抓到这个登录所需要的参数。

观察参数后,先找到变化的参数,再试图去获取变化的参数,而且一般这种看不见的参数,一般就是在源码中,我们点击查看源码,然后ctrl+F搜索看不见的参数,找到其位置。

然后我们模拟浏览器给服务器发送请求,获取网页源代码后,使用bs4解析源代码,然后相应变化的参数后,再发送请求即可!

此处会生成两个文件,并且code.jpg,在运行的时候如果加载不出来,那就去项目的文件夹中查找。

自动识别验证码

超级鹰!下载python开发文档,并且将.py和一个图片复制到项目中!

打开后,看一下.py文件,更改用户名和密码上去!

根据其中的提示更改这个用户ID

但是由于我没有充钱,没给我返回哈哈哈哈哈!

上述内容就是如何进行基于pycharm的requests库使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

参数 登录 验证 页面 字典 数据 源码 路径 地方 文件 方法 提示 观察 代码 命令 图片 对象 就是 知识 编码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手机如何远程云服务器 网络安全是如何嗅探的 广东微谱网络技术有限公司 图书馆数据库设计案例四个表 软件开发工时评判标准 手机网络安全使用手抄报 大数据协会网络安全协会冲突吗 锦策互联网科技有限公司 信息网络技术包括 开封网络技术质量 excel转换成数据库 2021网络安全运维费用预算 宝贝裂变软件开发 江西软件开发解决方案报价 我的世界花雨亭服务器怎么升级 梦幻手游手游大唐官府服务器 深圳软件开发工程师刘明 北京一卡通显示无法连接服务器 滁州保险软件开发定制公司 jdbc来实现访问数据库 图书馆数据库设计案例四个表 滦州企业网络技术不二之选 同程旅游软件开发待遇 为什么配音显示无法连接服务器 确保网络安全后面应该加什么 如何让数据库的不同表 登陆没有密码的网络安全吗 python数据库连接语句 腾飞网络安全知识 软件开发SQA的目标
0