You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助:使用Python实现网站自动登录

网站自动登录脚本问题排查与修复

问题分析与解决步骤

1. 缺少浏览器模拟请求头

多数网站会校验请求的User-Agent、Referer等头信息,直接用requests.post提交容易被拦截。同时要使用会话保持Cookie,因为登录流程通常依赖Cookie维持状态:

from pyquery import PyQuery
import requests

url = 'https://licensing.gov.nl.ca/miriad/sfjsp?interviewID=MRlogin'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Referer': url
}
values = {
    'd_1553779889165': 'email@email.com',
    'd_1553779889166': 'thisIsMyPassw0rd$$$',
    'd_1618409713756': 'true',
    'd_1642075435596': 'Sign in'
}

# 用Session维持会话Cookie
session = requests.Session()
# 先GET登录页获取初始Cookie
session.get(url, headers=headers)
# 提交登录请求
r = session.post(url, data=values, headers=headers)
# 解码成字符串更易查看结果
print(r.content.decode('utf-8'))

2. 表单参数可能是动态生成的

你代码里的参数键(如d_1553779889165)带时间戳格式,大概率是每次访问登录页都会变化的动态值。需要先获取登录页HTML,提取真实的表单字段:

from pyquery import PyQuery
import requests

session = requests.Session()
url = 'https://licensing.gov.nl.ca/miriad/sfjsp?interviewID=MRlogin'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 获取登录页HTML
response = session.get(url, headers=headers)
pq = PyQuery(response.content)

# 提取表单所有输入字段
form_data = {}
for input_tag in pq('form input'):
    name = input_tag.get('name')
    value = input_tag.get('value', '')
    if name:
        form_data[name] = value

# 替换为你的账号密码(注意:需匹配提取到的真实字段名,可能和你之前的键不同)
form_data['d_1553779889165'] = 'email@email.com'
form_data['d_1553779889166'] = 'thisIsMyPassw0rd$$$'
form_data['d_1642075435596'] = 'Sign in'

# 提交表单
r = session.post(url, data=form_data, headers=headers)
print(r.content.decode('utf-8'))

3. 额外校验项检查

  • 确认表单的action属性:有些表单会提交到和当前页不同的地址,需要从登录页的<form>标签中提取action值作为POST目标地址。
  • CSRF令牌:多数网站会在表单中隐藏CSRF令牌字段,上面的代码提取所有表单参数时会自动包含该字段,无需额外处理。

内容的提问来源于stack exchange,提问作者vahnx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:50:23