如何使用Python请求登录网站,存储cookie,然后访问网站上的另一个页面?

2023-12-01

我正在尝试使用 Python 脚本登录网站,存储我收到的 cookie,然后使用相同的 cookie 访问网站的会员专用部分。我已经阅读了有关该主题的几篇文章和答案,但没有一个答案对我有用。

以下是我尝试访问的网站登录页面的 HTML 代码。

<form action="/login?task=user.login" method="post">
    <fieldset>
        <table border="0" cellspacing="0" cellpadding="0">
        <tbody>
                                                        <tr>
            <td width="70" nowrap="">Username&nbsp;&nbsp;</td>
            <td width="260"><input type="text" name="username" id="username" value="" class="validate-username" size="25"/></td>
                    </tr>
                                                                                <tr>
            <td width="70" nowrap="">Password&nbsp;&nbsp;</td>
             <td width="260"><input type="password" name="password" id="password" value="" class="validate-password" size="25"/></td>
         </tr>
                                                        <tr>
             <td colspan="2"><label style="float: left;width: 70%;" for="modlgn_remember">Remember Me</label>
             <input style="float: right;width: 20%;"id="modlgn_remember" type="checkbox" name="remember" class="inputbox" value="yes"/></td>
         </tr>
         <tr>
            <td  colspan="2" width="100%"> <a href="/reset-password"> Forgot your password?</a></td>
        </tr>
        <tr>
            <td  colspan="2" width="100%"> <a href="/username-reminder">Forgot your username?</a></td>
        </tr>
        <tr>
            <td colspan="2"><button type="submit" class="button cta">Log in</button></td>
<!--                            <td colspan="1"><a href="/--><!--">Register Now</a></td>-->
        </tr>
        </tbody>
        </table>

        <input type="hidden" name="return"
               value="aHR0cHM6Ly9maWYuY29tLw=="/>
        <input type="hidden" name="3295f23066f7c6ab53c290c6c022cc4b" value="1" />                    </fieldset>
</form>

这是我自己用来尝试登录的代码。

from requests import session

payload = {
     'username': 'MY_USERNAME',
     'password': 'MY_PASSWORD'
}

s = session()
s.post('https://fif.com/login?task=user.login', data=payload)

response = s.get('https://fif.com/tools/capacity')

从我读过的所有内容来看,这应该有效,但事实并非如此。我已经为此苦苦挣扎了两天,所以如果你知道答案,我会喜欢这个解决方案。

作为参考,以下是我查看过的所有其他 StackOverflow 帖子,希望能找到答案:

  1. Python 请求和持久会话
  2. 使用 Python 请求登录站点
  3. 使用python登录网站
  4. 如何使用Python的Requests模块“登录”网站?
  5. Python:请求会话登录 Cookie
  6. 如何使用Python登录网页并检索cookie以供以后使用?
  7. cUrl 登录然后 cUrl 下载

您应该发布所有必需的数据,您可以使用bs4解析登录页面以获取您需要的值:

from requests import session
from bs4 import BeautifulSoup

data = {
    'username': 'MY_USERNAME',
    'password': 'MY_PASSWORD'
}

head = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
with  session() as s:
    soup = BeautifulSoup(s.get("https://fif.com/login").content)
    form_data = soup.select("form[action^=/login?task] input")
    data.update({inp["name"]: inp["value"] for inp in form_data if inp["name"] not in data})
    s.post('https://fif.com/login?task=user.login', data=data, headers=head)
    resp = s.get('https://fif.com/tools/capacity')

如果您发出请求并查看 chrome 工具或 firebug,表单数据如下所示:

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

如何使用Python请求登录网站,存储cookie,然后访问网站上的另一个页面? 的相关文章

随机推荐

  • 根据 W3C XML 架构定义验证 XSD

    我正在生成一些 XML 模式 并希望确保我们的生成器正在创建有效的 XML 模式文档 不是 XML 我试图编写代码来验证 XML 模式文档 但失败了 我没想到会这么复杂 private void validateXsd String xsd
  • 静态内部类需要导入注释

    因此 我正在进行一些 jUnit 测试 并希望编写具有相似功能但足够小以在单个类中编写的不同类 无论设计决定如何 它都会给我带来编译器错误 我不确定我所看到的规则是什么 你可以想象它看起来像 package foo RunWith Suit
  • Realm - 模块文件是由旧版本的编译器创建的

    我使用最新版本的 xcode 和 swift 2 2 我的一个项目 由于错误 我已经好几个月没有打开了 现在还没有构建module file was created by an older version of compiler 我尝试了以
  • Mockito 单元测试 - 时间戳不同

    Mockito 测试存在一些问题 我目前收到此错误 Argument s are different Wanted repository save uk co withersoft docservice repositories hiber
  • 如何取消WCF服务调用?

    我有一个执行时间很长的WCF函数 所以我用backgraundworker在UI中调用该函数 我想提供一个取消执行的功能 所以我中止IComunicationObject 问题是服务执行没有停止 是在这种情况下有什么方法可以停止服务执行吗
  • 尽管 CloudWatch 代理正在运行,但 CloudWatch 日志组丢失

    我在 EC2 实例上看不到 Cloud Watch 代理定义的日志组 此外 默认日志组 var log messages 不可见 我在 root 帐户上也看不到这些日志 我配置了其他日志组并且可见 我有以下设置 亚马逊Linux 附加到实例
  • 我应该使用什么来为 heroku 上的 Rails 生成站点地图?

    作为 Rails 的初学者 我发现由于其只读限制 在 Heroku 上生成站点地图非常令人畏惧 然而 站点地图是我网站的基础 因为它的成功基于搜索引擎优化 我尝试过dynamic sitemaps gem 但很快就删除了它 因为我意识到它没
  • 使用 http:// 添加自定义 URL 架构

    我想向我的 iPhone 应用程序添加自定义 URL 以便其他应用程序能够打开它 不过 我希望 URL 以 http 开头 更详细地说 我想通过我发送给用户的电子邮件中的链接打开应用程序 并且如果从电子邮件中读取电子邮件 则该链接必须有效
  • OSX 10.8 登录项

    我找到了这个在 Package Maker 安装程序 postflight 脚本期间将应用程序添加到 OSX 登录项 但它似乎不适用于 OSX 10 8 这是来自另一个问题 适用于其他所有问题 defaults write Library
  • jquery 无限滑块 图片

    我正在尝试使用 jquery 创建一个无限滑块 我的页面有一些标签 其宽度等于窗口宽度 我想在 10 秒后滑动每张图像 当最后一张图像出现且第一张图像显示时 我希望它从右侧静止下来 现在我创建了一个宽度很大的 div 10000px 来保存
  • 双精度的精确二进制表示[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的浮点数转换为二进制 我有一个非常小的双变量 当我打印它时 我得到 0 使用 C 现在为了获得更好的精度我尝试使用 cout precision 18 i think 18 is the max
  • WebView 中的 Android +1 按钮

    我尝试使用他们描述的方法将 Google 的 1 按钮放入 WebView 中 我已经初始化了 WebView 如下所示 final WebView web WebView findViewById R id webView web get
  • 可定制/动态 SWF 生成

    想知道是否有人知道如何制作可定制的 Flash swf 文件 其中似乎有一个 swf 模板 用户可以输入一些更改 例如文本或图像 并接收包含更改的新编译的 swf 文件 一些例子 http flashfreezer com landingc
  • Bootstrap 4.0 网格系统布局不起作用

    我正在尝试使用引导程序进行布局 但我无法弄清楚我做错了什么 我放入两列 6 列 第二列 6 列 我放入两列 3 列 但它不起作用 我是引导新手 这是代码
  • DataGridView:更改数据源后保留选择吗?

    有没有办法在更改数据源后保持 DataGridView 的选定单元格处于选中状态 您可以根据特定于您的需求的条件来匹配应选择的内容 只需根据您的匹配将单元格或行的 Select 属性设置为 true false 即可 这是一个简单的示例 您
  • DNS 记录将 www 重定向到非 www

    我在用着名称廉价域和Vultr主持 我正在尝试将 DNS www 重定向到非 www www example com 到 example com 我联系了 Vultr 并询问如何使用他们的 DNS 管理器执行此操作 他们说他们不会提供帮助
  • 在python中将列表列表转换为数据框

    list 1 1 56 20 2 78 30 3 34 40 4 98 这是我的列表列表 我想制作一个像这样的数据框 a b c 1 1 56 20 2 78 30 3 34 40 4 98 我做了一个代码 df pd DataFrame
  • 使用 Crashlytics 将应用程序部署到 Apple Appstore - 我需要隐私政策吗?

    我即将向 Apple AppStore 提交一个使用 Swift 构建的应用程序 该应用程序使用 Crashlytics 来捕获崩溃信息 正如 Crashlytics 用户所知 有关使用情况 持续时间 崩溃等的一些信息会被捕获并存储在 Cr
  • Flex 忽略 services-config.xml 中的更改

    昨天我花了半天时间尝试强制 Flex Remoting 使用 HTTPS 但没有成功 今天我尝试连接到其他域 我更改了端点的 url 但看起来 Flex 只是忽略了我的更改 我确信 src 目录中的任何文件中都不存在旧网址 我什至将 ser
  • 如何使用Python请求登录网站,存储cookie,然后访问网站上的另一个页面?

    我正在尝试使用 Python 脚本登录网站 存储我收到的 cookie 然后使用相同的 cookie 访问网站的会员专用部分 我已经阅读了有关该主题的几篇文章和答案 但没有一个答案对我有用 以下是我尝试访问的网站登录页面的 HTML 代码