Можем ли мы войти на сайт с чистым Python urllib, изменить некоторые значения формы и отправить? (без автоматизации браузера Selenium) - PullRequest
1 голос
/ 07 февраля 2020

Можно ли создать скрипт, который автоматически:

  1. Подключается к веб-сайту PayPal HTTPS
  2. Вход в систему с именем пользователя + паролем
  3. Переход к конкретный c URL
  4. Изменяет несколько значений в раскрывающихся списках
  5. Нажатие на кнопку

Все это из Python со стандартными методами, такими как urllib.request?

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

Или из-за входа в систему, мы должны сделать это путем «автоматизации» или «подделки» реального браузера, используя Selenium методы / или другие методы а-ля PhantomJS? (Я бы предпочел не делать этого, если это возможно)

enter image description here


Context : Я посмотрел в различные места и обратились в службу поддержки по электронной почте + по телефону, но, похоже, PayPal не предлагает доступа к API для запуска и загрузки отчета CSV обо всех транзакциях между, например, 01/01 / 2020 и 31/01/2020 ... , за исключением , если объем продаж превышает 20 000 в месяц, и в этом случае у вас есть доступ к их Reporting API + отчеты на FTP-сервере .

Если это не тот случай, этот API отчетности недоступен, и вам необходимо вручную войти go на страницу https://business.paypal.com/merchantdata/reportHome?reportType=DLOG (см. Скриншот выше), щелкнуть по различным списки, нажмите Create report, подождите несколько минут / часов, снова войдите в систему, go вернитесь на эту страницу и, наконец, нажмите Download. Это скучная задача, которую я хочу делать каждый месяц (и их веб-сайт довольно медленный), которую я хотел бы автоматизировать.

1 Ответ

2 голосов
/ 07 февраля 2020

Правильная ссылка на отчеты SFTP: https://developer.paypal.com/docs/reports/sftp-reports/

И это все строго ежедневные файлы отчетов, а не ежемесячные или любые другие периоды времени. Вам придется читать и анализировать каждый ежедневный файл, чтобы охватить желаемый период времени.


Теоретически возможно эмулировать пользовательский интерфейс веб-сайта PayPal с помощью чего-то вроде urllib или mechanize.Browser. и автоматизировать запрос файла журнала активности и его загрузку. Но это достаточный объем работы для того, что вы собираетесь делать только раз в месяц, и может прерваться, когда PayPal изменит свой сайт. Часть входа особенно сложна для автоматизации, так как PayPal может потребовать дополнительной проверки помимо пароля.

Если вы собираетесь автоматизировать какую-то часть этого, я бы рекомендовал делать это только внутри браузера (Tampermonkey, Selenium и т. д .; обратите внимание, что Tampermonkey по умолчанию помещает в черный список paypal.tld для вашей собственной защиты от импорта вредоносного скрипта)

...