首页 > 解决方案 > Python:使用查询字符串参数请求GET方法登录不确定是否成功

问题描述

问题:

我想使用请求会话和 GET 方法登录到https://www.vademecum.es/,但我认为我无法登录。

我试过了:

  1. 检查并找出 XHR 下的登录查询

  2. 我看到方法不是 POST 而是 GET,这意味着我应该找到查询字符串参数而不是 POST 的表单数据 登录查询

  3. 然后,我不确定我应该做什么。我刚刚尝试了像 POST 那样的请求会话。

    request_url = 'https://www.vademecum.es/vademecum_check_session?tk=e2fa8fa3e3ddc83f4959eec03fdb5acac32b8d83&rt=bd0c521e9415f8b39a5b77da05a38dd1b511dba3&v=1&p=0.0502148532968687'
    query_string_parameters = {
    "tk":"e2fa8fa3e3ddc83f4959eec03fdb5acac32b8d83", 
    "rt": "bd0c521e9415f8b39a5b77da05a38dd1b511dba3",
    "v": "1",
    "p": "0.0502148532968687"} 
    s = requests.Session()
    response = s.get(request_url, params=query_string_parameters)
    test = s.get('https://www.vademecum.es/mis_datos?redirect=https://www.vademecum.es/medicamento-keytruda_dopaje_45789')
    soup = BeautifulSoup(test.text, "html.parser")
    

测试网址是我登录时的帐户。 [测试 url2

我得到如下结果(与我登录时使用检查时看到的不同):

[<div class="input"><input id="inp_login_email" name="login[email]" placeholder="Correo electrónico*" type="text"/></div>,
 <div class="input"><input id="inp_login_password" name="login[password]" placeholder="Contraseña*" type="password"/></div>,
 <div class="input"><input checked="checked" id="inp_login_remember" name="login[remember]" type="checkbox" value="1"/></div>,
 <div class="input"><input class="btn_blue" id="inp_login_submit" name="login[submit]" type="submit" value="Iniciar sesión"/></div>]

我从检查中看到的:

检查

问题:

  1. 我使用 GET 方法登录的步骤是否正确?如何使用 GET 方法正确登录
  2. 我看到通常我们使用用户名和密码登录 POST 方法,我们可以用 GET 方法做同样的事情吗?

可选问题: 我目前只使用requests包进行测试。但是我想知道如果我使用scrapy,我应该使用什么方法来使用scrapy登录?(一般我用FormRequest做POST方式登录)

提前致谢。

标签: pythonweb-scrapingpython-requestsgetscrapy

解决方案


推荐阅读