我正在編寫一個網頁抓取python腳本,我希望它能夠做的一件事是讓它拍攝某些頁面的快照(所有的HTML,樣式表和圖片都需要離線正確查看特定頁面)。好像的HTTrack是做一個好辦法,我想我將能夠調用它使用在Windows中使用子進程從python運行HTTrack
subprocess.call(["httrack", "http://www.example.com", "-O", "\tmp\example"])
但試圖在python腳本中這樣做會導致「FileNotFoundError:[WinError 2]系統找不到指定的文件「。我也試着給它完整的文件路徑,
subprocess.call(["C:\Program Files\WinHTTrack\httrack.exe", "http://www.example.com", "-O", "\tmp\Example"])
,但我得到的錯誤「語法錯誤:(Unicode的錯誤)‘unicodeescape’編解碼器不能解碼位置2-3字節:截斷\ UXXXXXXXX逃生「
我認爲這是一個問題,我不能正確理解subprocess
,因爲我可以通過Windows命令提示符獲得HTTrack的工作。任何人都可以幫助我理解使用子進程的正確方法嗎?
'「\ tmp \ example」'中的''\ t「'根本不會跳出來嗎?至於'\ U',看起來你正在使用Python 3,並沒有向我們展示在2-3位置包含'「\ U」'的字符串,例如「C:\ Users」。無論如何,只要使用[r] aw字符串來避免這個問題 - 除非路徑以反斜槓結尾,在這種情況下,請使用常規字符串,並用另一個反斜槓(例如「C:\\」)轉義每個反斜槓。 – eryksun