1

我正在编写一个网络抓取 python 脚本,我希望它能够做的一件事是让它拍摄某些页面的快照(所有 html、样式表和必要的图像以正确离线查看该特定页面)。似乎 HTTrack 是一个很好的方法,我想我可以从 python 脚本中调用它

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: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXXXX escape”

我认为这是我理解不subprocess正确的问题,因为我可以通过 Windows 命令提示符让 HTTrack 工作。谁能帮我理解使用子流程的正确方法?

4

1 回答 1

1

感谢eryksun的评论解决。这根本不是subprocess语法问题,而是我没有小心转义所有反斜杠。拉到r这些字符串前面使它们成为原始字符串可以很好地修复我的代码。

于 2016-01-14T14:39:06.187 回答