Я нахожусь в процессе написания скрипта python скремблирования в сети, и одна из вещей, которые я хотел бы сделать, - это сделать снимок определенных страниц (все html, таблицы стилей и изображения, необходимые для просмотра этой конкретной страницы в автономном режиме). Похоже HTTrack это хороший способ сделать это, и я думал, что я мог бы назвать его из сценария питона, используяИспользование подпроцесса для запуска HTTrack из python в Windows
subprocess.call(["httrack", "http://www.example.com", "-O", "\tmp\example"])
Но пытающегося сделать это приводит к «FileNotFoundError: [WinError 2] Система не может найти указанный файл ". Я также попытался дать ему полный путь к файлу,
subprocess.call(["C:\Program Files\WinHTTrack\httrack.exe", "http://www.example.com", "-O", "\tmp\Example"])
но я получаю ошибку «SyntaxError: (ошибка юникода)„unicodeescape“кодек не может декодировать байт в позиции 2-3: усеченный \ UXXXXXXXX побег «
Я думаю, что это проблема со мной, не понимая правильно subprocess
, так как я могу заставить HTTrack работать через командную строку Windows. Может ли кто-нибудь помочь мне понять правильный способ использования подпроцесса?
'' \ t "' in '" \ tmp \ example "' не выпрыгивает на вас вообще? Что касается '\ U', кажется, вы используете Python 3 и не показываете нам строку со строкой, содержащую' '\ U" 'в позиции 2-3, например' 'C: \ Users" '. Во всяком случае, просто используйте строки [r] aw, чтобы избежать этой проблемы - за исключением того, что путь заканчивается обратным слэшем, в этом случае используйте обычную строку и избегайте каждой обратной косой черты с помощью другой обратной косой черты, такой как '' C: \\ "'. – eryksun