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

使用Python requests自动化phishcheck.me URL检测遇格式错误

Fixing "Malformed URL" Error When Automating phishcheck.me in Python

我之前帮朋友调试过phishcheck.me的自动化检测脚本,刚好碰到过一模一样的Malformed URL问题,大概率是这几个细节没处理到位,给你一步步拆解解决:

常见原因&对应解决方案

1. 待检测URL未正确编码

phishcheck.me的接口要求传入的目标URL必须是URL编码后的格式,尤其是当你的待检测URL包含&、=、空格或者特殊字符时,直接传递会把请求参数拆乱,导致服务器识别为格式错误。

解决方法:用Python的urllib.parse.quote()对目标URL进行全编码:

import urllib.parse

# 示例待检测URL
target_url = "https://suspicious-site.com/login?user=test&pass=123"
# safe设为空字符串,确保所有特殊字符都被编码
encoded_url = urllib.parse.quote(target_url, safe='')

2. Cookie格式错误

很多人会直接把浏览器里复制的Cookie字符串丢给requests,但如果字符串里有多余空格、换行,或者用错了传递方式,就会触发格式错误。

更稳妥的方式是用字典形式传递Cookie:

# 从浏览器开发者工具的请求头里复制Cookie字段,拆成键值对
cookies = {
    "PHPSESSID": "abc123xyz456",  # 替换成你实际的会话ID
    "accept_cookies": "1",
    # 其他你在截图里看到的Cookie字段
}

如果一定要用字符串形式,确保格式严格是key1=value1; key2=value2,不要有任何多余符号或换行。

3. 请求构造不匹配浏览器请求

phishcheck.me的服务器会校验请求的方法(GET/POST)、参数位置、请求头,和浏览器里的请求不一致也会报错。

按照你截图里的请求方式,构造完全一致的请求:

import requests

# 替换成截图里的实际检测端点
api_url = "https://phishcheck.me/api/check"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Referer": "https://phishcheck.me/",
    # 其他截图里的请求头字段
}

# 假设是POST请求,参数放在form data里(替换成截图里的实际参数名)
payload = {
    "url_to_check": encoded_url
}

response = requests.post(api_url, cookies=cookies, data=payload, headers=headers)

# 打印请求详情,方便排查差异
print("实际发送的URL:", response.request.url)
print("请求头:", response.request.headers)
print("响应内容:", response.text)

排查小技巧

  • 把编码后的URL拼到浏览器的检测接口里手动测试,确认编码后的URL是有效的。
  • 用浏览器开发者工具(F12)对比Python发送的请求和浏览器请求的所有细节,包括Cookie、Headers、参数、请求方法,找出差异点。

如果还有问题,可以把你当前的代码片段和请求截图里的关键信息(比如端点、参数名)贴出来,我再帮你细化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:26:12