带请求的 Python 网页抓取 - 登录后

2024-03-08

我下面有一个 python requests/beautifulsoup 代码,它使我能够成功登录到 URL。但是,登录后,要获取我需要的数据通常必须手动执行:

1)点击第一行的“声明”:

2) 选择日期,点击“运行报表”:

3)查看数据:

这是我用来登录并进入上述步骤 1 的代码:

import requests
from bs4 import BeautifulSoup

logurl = "https://login.flash.co.za/apex/f?p=pwfone:login"
posturl = 'https://login.flash.co.za/apex/wwv_flow.accept'

with requests.Session() as s:
    s.headers = {"User-Agent":"Mozilla/5.0"}
    res = s.get(logurl)
    soup = BeautifulSoup(res.text,"html.parser")

    arg_names =[]
    for name in  soup.select("[name='p_arg_names']"):
        arg_names.append(name['value'])

    values = {
        'p_flow_id': soup.select_one("[name='p_flow_id']")['value'],
        'p_flow_step_id': soup.select_one("[name='p_flow_step_id']")['value'],
        'p_instance': soup.select_one("[name='p_instance']")['value'],
        'p_page_submission_id': soup.select_one("[name='p_page_submission_id']")['value'],
        'p_request': 'LOGIN',
        'p_t01': 'solar',
        'p_arg_names': arg_names,
        'p_t02': 'password',
        'p_md5_checksum': soup.select_one("[name='p_md5_checksum']")['value'],
        'p_page_checksum': soup.select_one("[name='p_page_checksum']")['value']
    }
    s.headers.update({'Referer': logurl})
    r = s.post(posturl, data=values)
    print (r.content)

我的问题是,(对于初学者来说),我如何跳过步骤 1 和 2,只使用选定日期作为表单条目(下面的标题和表单信息)使用最终 URL 进行另一个标题更新和发布? (这referral header是上面的步骤 2):

enter image description here ]

编辑1:来自csv文件下载的网络请求:


正如其他人所推荐的,Selenium 是完成此类任务的好工具。但是,我会尝试建议一种使用方法requests为此目的,因为这就是您在问题中所要求的。

这种方法的成功实际上取决于网页的构建方式以及数据文件的可用方式(如果视图数据中的“另存为 CSV”是您的目标)。

如果登录机制是基于cookie的,您可以使用Sessions http://docs.python-requests.org/en/latest/user/advanced/ and Cookies http://docs.python-requests.org/en/latest/user/quickstart/#cookies在请求中。当您提交登录表单时,响应标头中会返回一个 cookie。您可以将 cookie 添加到任何后续页面请求的请求标头中,以保持您的登录状态。

此外,您还应该在开发人员工具网络窗格中检查“另存为 CSV”操作的网络请求。如果您可以看到请求的结构,则可以在经过身份验证的会话中发出直接请求,并使用语句标识符和日期作为有效负载来获取结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带请求的 Python 网页抓取 - 登录后 的相关文章

随机推荐