Почему модуль os не запускает команду wget cmd? - PullRequest
1 голос
/ 05 июня 2019

Я пытаюсь загрузить zip-файл из Интернета и пытаюсь загрузить его консольной командой, используя wget -O fileName urlLink, но при попытке кода CMD открывается на секунду, затем закрывается, и я не могу найтифайл где угодно.

Я пытался использовать другие способы загрузки файла, но они возвращают ОШИБКУ 403. Использование wget в CMD загружает нужный файл, но не в коде python.

def gotoDownload(link):
    try:
        with requests.Session().get(link) as download:
            if isUrlOnline(download):
                soup = BeautifulSoup(download.content, 'html.parser')
                filtered = soup.find_all('script')
                zip_file_url = re.search(r"('http.*?')", filtered[17].text).group().replace("'", "")

                os.system("wget -O {0} {1}".format('CreatureFinalZTL.zip', zip_file_url))

Ожидайте загрузки файла. Вместо этого ничего не загружается.

Ответы [ 3 ]

1 голос
/ 05 июня 2019

Вместо этого используйте subprocess.

import subprocess

...

subprocess.run(["wget",  "-O", 'CreatureFinalZTL.zip', zip_file_url])

Это исключает какое-либо участие оболочки в команде, которую вы хотите запустить.

1 голос
/ 05 июня 2019

Есть несколько вещей, которые могут здесь помочь (это может решить, а может и не решить вашу проблему, потому что это зависит от настроек и конфигурации вашей машины).Во-первых, я хотел бы предложить более конкретную информацию о путях.Вы можете использовать абсолютные пути в строке wget следующим образом:

"wget -O {0} {1}".format('/path/to/output/dir/CreatureFinalZTL.zip', zip_file_url)

Обычно это полезно, если среда Python не работает в каталоге, который вы ожидаете.В качестве альтернативы вы можете принудительно вызвать каталог с помощью следующей команды python:

os.chdir( path )

Затем вы можете работать с относительными путями, не беспокоясь.Второе, что я хотел бы предложить, это подтвердить, что URL-это то, что вы ожидаете.Просто распечатайте это так:

print( zip_file_url )

Это может звучать глупо, но важно убедиться, что ваше регулярное выражение работает правильно.

0 голосов
/ 06 июня 2019

Исправлено, пришлось заново добавлять wget в PATHS на окнах.

...