首页 > 解决方案 > 我们可以用纯 Python urllib 登录一个网站,修改一些表单值,然后提交吗?(没有 Selenium 浏览器自动化)

问题描述

是否可以制作一个自动的脚本:

  1. 连接到 PayPal HTTPS 网站
  2. 使用用户名+密码登录
  3. 转到特定的 URL
  4. 修改下拉列表中的一些值
  5. 点击一个按钮

所有这些都来自 Python 的标准方法,例如urllib.request

import urllib.request; s = urllib.request.urlopen('https://example.com').read().decode()

或者因为涉及到登录,我们是否必须通过“自动化”或“伪造”一个真实的浏览器,使用Selenium方法/或其他方法来做到这一点PhantomJS?(如果可能的话,我宁愿不必这样做)

在此处输入图像描述


背景:我已经查看了各个地方并通过电子邮件+电话寻求他们的支持,但似乎 PayPal不提供对 API 的访问来触发生成和下载所有交易的 CSV 报告,例如 01/01/ 2020 年和 2020 年 1 月 31 日……除非您每月的销售额超过 20k,并且在这种情况下,您可以访问他们的Reporting API + FTP 服务器上的报告

如果不是这种情况,此报告 API 不可用,并且您必须手动登录,请转到页面https://business.paypal.com/merchantdata/reportHome?reportType=DLOG(见上面的屏幕截图),点击各种列表,点击Create report,等待几分钟/小时,重新登录,回到这个页面,最后点击Download。这是每个月都要做的一项无聊的任务(而且他们的网站通常相当慢),我想自动化。

标签: pythonseleniumpaypalurllib

解决方案


SFTP 报告的正确链接是:https ://developer.paypal.com/docs/reports/sftp-reports/

这些都是严格的每日报告文件,而不是每月或任何其他时间段。您必须阅读和解析每个每日文件以涵盖您想要的时间段。


理论上可以使用 urllib 或mechanize.Browser之类的东西来模拟 PayPal 网站 UI,并自动请求活动日志文件并下载它。但这对于您每月只要做一次的事情来说是相当大的工作量,并且当 PayPal 更改他们的网站时可能会中断。登录部分的自动化特别棘手,因为 PayPal 可能需要额外的验证,而不仅仅是密码。

如果您要自动化其中的某些部分,我建议仅在浏览器中执行此操作(Tampermonkey、Selenium 等;请注意,Tampermonkey 默认将 paypal.tld 列入黑名单,以防止您自己导入恶意脚本)


推荐阅读