首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python可以从post请求中获取请求有效负载吗?

Python可以从post请求中获取请求有效负载吗?
EN

Stack Overflow用户
提问于 2022-04-19 08:10:00
回答 1查看 1.5K关注 0票数 0

我正试图通过请求包在网上刮取这个网址https://pricempire.com/search的名称和价格。当我加载站点时,有一个名为items的POST请求,在请求有效负载中有一个名为captchaToken的属性,基本上我想捕获这个属性并使用它为其他页面创建请求。我一直在使用Selenium来搜索名称和价格,但是加载每个页面要花20秒的时间是非常缓慢的。因此,我的目标是捕获请求有效负载中的captchaToken,如下所示:

代码语言:javascript
运行
AI代码解释
复制
json_data = {
    'page': 1,
    'priceMin': 0,
    'orderBy': 'price_desc',
    'captchaToken': 'aaabbbcccxxxzzzyyy',
    'priceMax': 200000,
    'collections': [],
    'weaponIds': [],
    'wears': [],
    'priceProvider': 'buff163',
}

以加快网站的抓取速度。但我不知道这是否可能,从我的研究中,我不知道这个问题的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 08:34:02

在post请求中,您必须将服务器以payload形式发送的数据作为json响应进行添加,而captcha Token也是有效负载数据的一部分。下面是一个示例,说明如何从api调用json响应中提取数据(名称、价格)作为post方法。

代码语言:javascript
运行
AI代码解释
复制
import requests
import json
URL = "https://public-api.pricempire.com/api/search/items"

body= {"page":1,"priceMin":0,"orderBy":"price_desc","captchaToken":"03AGdBq271Msp7k_yCTzgNsheZ1yRqLWykDZL17tIK9_YAVo2uZGc3cLH0sNhuZOFsnymBSAbuzRRo2w_Cy6kEEMxaRxgkuZUlXFcDzRPWgYs-Hy-fV5SpxLjU8rACYW3KwZ8y-js1Dye8weAdMfZSPeEBgQ9YP3zdbaPrUOJAHHmjkpqTxH7vPW-Cd2PXHtZf5NlgVkxCBUKIESAyMJ6FyKdNz_WxYdIJvK4uQa6nBdHxMlmQZx6rUgus65NxZkwTaY3BO36ju68WNerv-fQBqFdIz_6jUPfav41DYFiApv9O-MbdASQqpS-ma1TG76mQ82OQdzkqqvpZtAksBGa836HzsxfaOecgbZ2YbswAHr1dXxl919DbRnZum4Wr-UUZMQ66j8Iy5UA_g4B3Ir7IxTf50KhTOrNHtqIIYuBR4Vfz6scc5c7XqATeqMoMvL-06wbBWVATSI44","priceMax":200000,"collections":[],"weaponIds":[],"wears":[],"priceProvider":"buff163"}

headers={
    'content-type': 'application/json',
    'User-Agent':'mozila/5.0/'
    }
jsonData=requests.post(URL,headers=headers,data=json.dumps(body)).json()


for item in jsonData['items']:
    name= item['name'].replace('★','').replace('|','').strip()
    price=item['price']['price']
    print(name)
    print(price)

输出:

代码语言:javascript
运行
AI代码解释
复制
Souvenir AWP  Dragon Lore (Minimal Wear)
100000000
Sticker  iBUYPOWER (Holo)  Katowice 2014    
49999900
Sticker  Titan (Holo)  Katowice 2014        
49999800
Souvenir AWP  Dragon Lore (Field-Tested)    
36388800
Sticker  Reason Gaming (Holo)  Katowice 2014
30000000
Souvenir AWP  Dragon Lore (Battle-Scarred)  
23618000
Sport Gloves  Pandora's Box (Factory New)
22000000
Sticker  Team LDLC.com (Holo)  Katowice 2014
16750000
StatTrak™ Ursus Knife  Crimson Web (Factory New)
15000000
StatTrak™ Talon Knife  Crimson Web (Factory New)
15000000
StatTrak™ Nomad Knife  Safari Mesh (Battle-Scarred)
15000000
Survival Knife  Crimson Web (Factory New)
14999999
StatTrak™ Stiletto Knife  Slaughter (Field-Tested)
14888800
Sport Gloves  Vice (Factory New)
13400000
Sticker  Vox Eminor (Holo)  Katowice 2014
13000000
Sticker  Team Dignitas (Holo)  Katowice 2014
11886000
StatTrak™ M9 Bayonet  Case Hardened (Factory New)
10999900
StatTrak™ Paracord Knife  Crimson Web (Factory New)
10000000
StatTrak™ Ursus Knife  Fade (Minimal Wear)
10000000
Sport Gloves  Slingshot (Factory New)
10000000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71928044

复制
相关文章
python post请求
post请求只需构建一个Request对象,并把参数传递给Request对象的data属性即可(也可以在urlopen方法中传递给data参数)。
灯珑LoGin
2022/10/31
1.8K0
Nginx 反向代理可以缓存 HTTP POST 请求页面吗?
本文节选自《Netkiller Web 手札》 作者:netkiller 网站:http://www.netkiller.cn 答案是可以! 因为nginx 使用 url 作为缓存的key ( Nginx 将url地址 md5后作为缓存的 key ),所以默认情况下 Nginx 只能处理 HTTP GET 缓存。 对于 HTTP POST 请求,提交数据放在HTTP Head 头部提交到服务器的, 提交前后URL始终不变,Nginx 无法区分相同网址两次请求的内容有变化。 但是我们可以自定义 缓存 key
netkiller old
2018/03/05
2.4K0
python处理get请求和post请求
#处理get请求,不传data,则为get请求 import urllib from urllib.request import urlopen from urllib.parse import u
用户1220053
2018/03/29
3.4K0
python 异步post请求
import aiohttp headers = {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus 5 Build/MMB29K) tuhuAndroid 5.24.6', 'content-type': 'application/json'} async with aiohttp.ClientSession(headers=headers) as sess:
Wyc
2021/08/13
3.5K0
Java发送Post请求,获取返回的请求头Header
在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段;
chenchenchen
2021/09/06
5.7K0
【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
韩曙亮
2023/03/29
16.7K0
GET请求和POST请求
在网络编程中,HTTP协议是最常用的协议之一,用于在客户端和服务器之间传输数据。HTTP协议中最常用的两种请求方式是GET和POST请求。这篇博客将介绍GET和POST请求的区别,以及在不同场景中如何选择使用这两种请求方式。
chao超的搬运文章
2023/10/15
5750
python学习(四)--POST请求
from urllib import request import urllib import re #网页版有道翻译是ajax的post请求。 #浏览器请求地址http://fanyi.youd
py3study
2020/01/17
8210
php获取post请求的json参数
早年APP还不火的时候,php用来开发网站的表单提交,获取post参数都是用$_POST对象获取。后来开始用来开发app接口,和前端同事沟通用json格式数据传递,post请求传递的参数也是json格式,一开始不太明白,以为http请求头中的body是形如这样的格式:
vimsudoers
2020/02/05
8.5K0
Python3中get与post请求
urllib.request 模块定义了一些类及方法,用于帮助我们访问URL urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False) 方法是用来打开url的方法,其中url可以是一个合法的url字符串,或者是一个request对象;data必须是字节数据类型的。详细介绍可参见python3官方文档urllib.request。 关于数据提交的两种方式get、post的
听城
2018/04/27
1.4K0
直接取出 post 请求中的 json、得请求体参数、查看 post 请求参数
方法如下: try{ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = requestAttributes.getRequest(); StringBuffer sb = new S
微风-- 轻许--
2022/04/13
5K0
python flask里 post请求,JSON数据获取方式总结
#!flask/bin/python #encodig=utf-8 # _*_ coding:utf-8 _*_ # Writer : byz # dateTime : 2016-08-05 from flask import Flask, jsonify, request, abort import json app = Flask(__name__) @app.route('/ana', methods=['GET', 'POST']) def call_analysis(): print
用户1214487
2018/04/16
8.6K0
原生js发送post请求_javascript发送post请求
说明: 要测试restsharp的功能,首先需要了解http传参和下载上传文件的原理,请参考: c#:从http请求报文看http协议中参数传递的几种方式 c#使用Http上传下载文件
全栈程序员站长
2022/10/04
8.6K0
原生js发送post请求_javascript发送post请求
【小家Java】Servlet规范之---请求(request):Servlet中如何获取POST请求参数?(使用getParameter())
request对象封装了来自客户端的所有请求信息。在HTTP协议中,客户端发给服务端的所有信息都是通过request对象的请求头和请求体来传送的。
YourBatman
2019/09/03
13.9K0
【小家Java】Servlet规范之---请求(request):Servlet中如何获取POST请求参数?(使用getParameter())
HttpClient-Get请求、Post请求
有参数,请求链接为url(http://localhost:8083/getdemo2)
wangmcn
2022/07/25
2.8K0
HttpClient-Get请求、Post请求
urlconnection post请求
package com.rayootech.activiti.util; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class Test { public static void main(String[] args) { String loadJSON =
挑战者
2018/11/09
2.1K0
python使用request发送post请求
唯一Chat
2023/09/15
2460
通过post请求api获取土味情话
用的ALAPI,自己申请token填上即可。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>
岳泽以
2022/10/26
7470
requests发送post请求,你真的明白吗?
前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法。一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆POST提交的方式。今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下。 在HTTP协议中,post提交的数据必须放在消息主体中,但是协议中并没有规定必须使用什么编码方式,从而导致了提交方式的不同。服务端根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码
七夜安全博客
2018/06/26
1K0
requests发送post请求,你真的明白吗?
在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法。一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆POST提交的方式。今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下。
七夜安全博客
2018/08/16
8.3K0
requests发送post请求,你真的明白吗?

相似问题

请求Python:传递有效负载POST请求

11

python中的Post请求有效负载

1175

使用PHP从Post请求中获取有效负载

10

在Java servlet中从POST请求中获取请求有效负载

91

如何使用有效负载请求在python中创建post请求?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文