python - 我们可以用纯 Python urllib 登录一个网站,修改一些表单值,然后提交吗?(没有 Selenium 浏览器自动化)
问题描述
是否可以制作一个自动的脚本:
- 连接到 PayPal HTTPS 网站
- 使用用户名+密码登录
- 转到特定的 URL
- 修改下拉列表中的一些值
- 点击一个按钮
所有这些都来自 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
。这是每个月都要做的一项无聊的任务(而且他们的网站通常相当慢),我想自动化。
解决方案
SFTP 报告的正确链接是:https ://developer.paypal.com/docs/reports/sftp-reports/
这些都是严格的每日报告文件,而不是每月或任何其他时间段。您必须阅读和解析每个每日文件以涵盖您想要的时间段。
理论上可以使用 urllib 或mechanize.Browser之类的东西来模拟 PayPal 网站 UI,并自动请求活动日志文件并下载它。但这对于您每月只要做一次的事情来说是相当大的工作量,并且当 PayPal 更改他们的网站时可能会中断。登录部分的自动化特别棘手,因为 PayPal 可能需要额外的验证,而不仅仅是密码。
如果您要自动化其中的某些部分,我建议仅在浏览器中执行此操作(Tampermonkey、Selenium 等;请注意,Tampermonkey 默认将 paypal.tld 列入黑名单,以防止您自己导入恶意脚本)
推荐阅读
- php - Laravel 日期范围过滤器
- r - 是否有一个 R 函数在另一个向量中找到一个向量?
- javascript - loadable-components:无法异步加载组件
- macos - 无法在另一台 MacBook 上运行 QT macOS 应用程序
- html - CSS使div填充2行
- html - 中心分区盒
- single-spa - SSPA:我们如何在每个单水疗应用程序中拥有具有两个不同版本的相同 npm 包
- vb.net - TRY CATCH VB.NET 上的 PUT 请求 JSON 异常
- java - chilkatsoft Java 数字签名
- javascript - 如何在nodejs中调用该存储类型和过程的参数?