Python Wget обход флажка перед загрузкой - PullRequest
0 голосов
/ 04 декабря 2018

Итак, я пытаюсь загрузить файл с веб-сайта, а именно JDK, для автоматизации настройки рабочей станции.При загрузке с сайта оракула вы вынуждены принять TOS.

Мой вопрос: как именно вы принимаете TOS от Python Wget?

import wget
import ssl

ssl._create_default_https_context = ssl._create_unverified_context

url = "https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_windows-x64_bin.exe"
wget.download(url, 'java11.exe')

1 Ответ

0 голосов
/ 04 декабря 2018

С помощью модуля wget вы не можете устанавливать файлы cookie, которые веб-сайт Oracle использует для принятия TOS.

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

import requests

url = 'https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_windows-x64_bin.exe'

cookie = { 'oraclelicense': 'accept-securebackup-cookie' }

r = requests.get(url, cookies=cookie)
if r.status_code == 200:
    with open("jdk-11.0.1_windows-x64_bin.exe", 'wb') as file:
        file.write(r.content)

РЕДАКТИРОВАТЬ: я вижу, что вы также подключаетесь через непроверенный SSL, чтобы сделать это с requests, вы можете установить verify в False:

r = requests.get(url, cookies=cookie, verify=False)
...