我正在编写一个web抓取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错误)‘unicode’编解码器无法解码位置2-3:截断\UXXXXXXXX转义字节“
我认为这是我不能正确理解subprocess的一个问题,因为我可以通过windows命令提示符让HTTrack工作。有人能帮我理解使用子进程的正确方法吗?
发布于 2016-01-14 14:39:06
多亏了eryksun的评论,我才解决了这个问题。这根本不是subprocess语法的问题,而是我没有小心地逃避所有反斜杠。把r拉到这些字符串的前面,让它们能很好地修复我的代码。
https://stackoverflow.com/questions/34777217
复制相似问题