GVKun编程网logo

使用Python请求模拟ajax POST调用(python模拟http请求)

19

想了解使用Python请求模拟ajaxPOST调用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python模拟http请求的相关问题,此外,我们还将为您介绍关于Postman模拟ajax

想了解使用Python请求模拟ajax POST调用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python模拟http请求的相关问题,此外,我们还将为您介绍关于Postman模拟ajax请求 并模拟登陆、python 模拟 Ajax 发送请求、Python-使用Python 3 urllib发出POST请求、Python使用python请求登录ASPX网站的新知识。

本文目录一览:

使用Python请求模拟ajax POST调用(python模拟http请求)

使用Python请求模拟ajax POST调用(python模拟http请求)

我正在做一个项目,其中我的解析器 窃取了 有关特定站点上每个视频的数据,并将其保存到我的数据库中。除了指向隐藏视频的完整链接之外,我已完成所有工作。
有一个播放器,它会自动从页面加载开始。我发现启动播放器的JavaScript代码:

function getVidData(resolution, init) {    << some code here >>    jQuery.ajax({type: ''POST'', url: ''/ajaxdata.php'', dataType: ''json'', data: ''mod=videodata&vid=48902&res='' + resolution, success: function (response) {        if (response.error != '''' && response.error != undefined) {        << error handling code here >>        } else {            StartPlayer(response.width, response.height, response.filename);        }    }  });}

通话后,因此,如果没有错误发现它开始使用播放器 的文件名响应 。那就是我所需要的。
我重新检查了 Live HTTP标头中 的呼叫:

http://<< SITE_URL >>/ajaxdata.phpPOST /ajaxdata.php HTTP/1.1Host: << SITE_URL >>User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0Accept: application/json, text/javascript, */*; q=0.01Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestReferer: << VIDEO_PAGE >>Content-Length: 31Cookie: << COOKIE VALUES >>DNT: 1Connection: keep-alivePragma: no-cacheCache-Control: no-cache    mod=videodata&vid=48901&res=640HTTP/1.1 200 OKServer: nginx/1.5.9Date: Tue, 22 Apr 2014 16:30:06 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveExpires: Tue, 22 Apr 2014 16:30:05 GMTCache-Control: no-cachePragma: no-cacheContent-Encoding: gzip

因此它使用特定的参数调用 ajaxdata.php ,作为回应,我应该找到文件名。
但是,此Python代码对我绝对没有任何回报(内容或错误)

import requestsurl = "http://LALLALAA/ajaxdata.php"data_video = {"mod": "videodata", "vid": "48901", ''res'': ''640''}s = requests.Session()s.post(login_url, data=login_data) # Authenticationcontent = s.post(url, data=data_video)print content.content

可变内容仅打印“ Response [200]”
现在,我完全被卡住了,如果有人可以指出我所做的错误或我可以尝试的解决方案,我将不胜感激。

谢谢

答案1

小编典典

正如Martijn Pieters所建议的那样,我一个接一个地尝试了标头,发现这种组合现在可以使用:

import requestsheaders = {    ''User-Agent'': ''Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'',    ''Accept'': ''application/json, text/javascript, */*; q=0.01'',    ''Content-Type'': ''application/x-www-form-urlencoded; charset=UTF-8'',    ''X-Requested-With'': ''XMLHttpRequest''}s = requests.Session()s.post(login_url, data=login_data)content = s.post(url, data=data_video, headers=headers)

我感谢所有人,特别是Martijn Pieters

Postman模拟ajax请求 并模拟登陆

Postman模拟ajax请求 并模拟登陆

分享图片

2.设置header头

  1. <span style= "font-size:16px;">设置代理、cookie、X-Requested-With
  2.  
  3. 注意 :X-Requested- With(代表是ajax请求) 这些数据可以去浏览器上找</span>
  4. @H_301_43@

    分享图片

    分享图片

    3.在body里设置请求携带的数据

    分享图片


    4.发送就可以了

    --------------------- 本文来自 小鹏程序 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_35979073/article/details/79352412?utm_source=copy

python 模拟 Ajax 发送请求

python 模拟 Ajax 发送请求

@西门飞 你好,想跟你请教个问题:

这是我刚刚抓到数据,我标记的这条,它的 content 里就是我想要的数据,请问这是 Ajax 请求得到的吗?我不会分析。如果是,那能否讲解一下或者有 Python 模拟 Ajax 请求的实例可以推荐给我参考一下,网上都没找到。谢谢了。

Python-使用Python 3 urllib发出POST请求

Python-使用Python 3 urllib发出POST请求

我正在尝试向以下页面发出POST请求:http :
//search.cpsa.ca/PhysicianSearch

为了模拟单击“搜索”按钮而不填写任何表单,该表单会将数据添加到页面。通过在chrome开发人员工具中查看“网络”标签时点击按钮,我获得了POST标头信息。我之所以发布此信息,而不是仅仅从其他类似问题中复制解决方案,是因为我认为我可能没有获得正确的标题信息。格式是否正确,我是否掌握了正确的信息?我以前从未提出过POST请求。

这是我设法拼凑而成的:

import urllib.parseimport urllib.requestdata = urllib.parse.urlencode({''Host'': ''search.cpsa.ca'', ''Connection'': ''keep-alive'', ''Content-Length'': 23796,                                     ''Origin'': ''http://search.cpsa.ca'', ''Content-Type'': ''application/x-www-form-urlencoded; charset=UTF-8'',                                     ''Cahce-Control'': ''no-cache'', ''X-Requested-With'': ''XMLHttpRequest'',                                     ''X-MicrosoftAjax'': ''Delta=true'', ''Accept'': ''*/*'',                                     ''Referer'': ''http://search.cpsa.ca/PhysicianSearch'',                                     ''Accept-Encoding'': ''gzip, deflate'',                                     ''Accept-Language'': ''en-GB,en-US;q=0.8,en;q=0.6'',                                     ''Cookie'': ''ASP.NET_SessionId=kcwsgio3dchqjmyjtwue402c; _ga=GA1.2.412607756.1459536682; _gat=1''})url = "http://www.musi-cal.com/cgi-bin/query?%s"data = data.encode(''ascii'')with urllib.request.urlopen("http://search.cpsa.ca/PhysicianSearch", data) as f:    print(f.read().decode(''utf-8''))

该解决方案输出页面的HTML,但不包含我想从POST请求中检索的任何数据。

答案1

小编典典

这就是你的做法。

from urllib import request, parsedata = parse.urlencode(<your data dict>).encode()req =  request.Request(<your url>, data=data) # this will make the method "POST"resp = request.urlopen(req)

Python使用python请求登录ASPX网站

Python使用python请求登录ASPX网站

如何解决Python使用python请求登录ASPX网站?

您好,我正在尝试登录此网站

http://newbips.ibpa.co.id/Home.aspx

我当前的代码在这里

import requests
import os
from bs4 import BeautifulSoup

#define headers (avoid detected as bot)
headers = {''user-agent'' : ''my user agent''}

#define login data
login_data = {
    ''dnn$ctr576$UserLogin$rtbUsername'': ''username'',''dnn$ctr576$UserLogin$rtbPassword'': ''pass'',}

with requests.Session() as s:
    #login
    url = "http://newbips.ibpa.co.id/Home.aspx"
    r = s.get(url,headers=headers)
    soup = BeautifulSoup(r.content,''html5lib'')
    
    login_data[''__VIEWSTATEGENERATOR''] = soup.find(''input'',attrs={ ''id'': ''__VIEWSTATEGENERATOR''})[''value'']
    login_data[''__VIEWSTATE''] = soup.find(''input'',attrs={ ''id'': ''__VIEWSTATE''})[''value'']
    
    #find captcha sources
    captcha = soup.find(''img'',attrs={ ''id'': ''dnn_ctr576_UserLogin_rcLogin_CaptchaimageUP''})[''src'']
    link_captcha = "http://newbips.ibpa.co.id" + captcha
    
    with open(''captcha.jpg'',''wb'') as handle:
        response = s.get(link_captcha,stream=True)
        if not response.ok:
            print("ok")
        for block in response.iter_content(1024):
            if not block:
                break
            handle.write(block)

    os.system(''captcha.jpg'')
    captchatext = input("Masukkan Captcha")

    login_data[''dnn$ctr576$UserLogin$rcLogin$CaptchaTextBox''] = captchatext

    r = s.post(url,data=login_data,headers=headers)

代码还是不行。我认为问题出在 login_data 上,但我仍然无法弄清楚。我怎样才能使这段代码有效?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于使用Python请求模拟ajax POST调用python模拟http请求的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Postman模拟ajax请求 并模拟登陆、python 模拟 Ajax 发送请求、Python-使用Python 3 urllib发出POST请求、Python使用python请求登录ASPX网站的相关知识,请在本站寻找。

本文标签: