Re: [心得] PTT Library

看板Python作者 (騎掃把的柴犬0_0)時間5年前 (2018/12/07 16:37), 編輯推噓4(403)
留言7則, 5人參與, 5年前最新討論串3/3 (看更多)
最近在練習用python爬ptt servey到這個library有使用paramiko作加密連線的部分覺得很不錯 只是在安裝上碰到了一些問題,卡了好幾關= = 小弟的環境是windows 10 + python 2.7.15 我用python -m pip install PTTLibrary指令安裝完後 執行import PTTLibrary 竟然出現ImportError: No module named PTTLibrary 看您寫的Library的相依性不算太複雜 就直接拉出來放在同個資料夾import 沒想到接下來遇到的是檔案本身編碼的問題.... 但是還好您的檔案不多,只要在每一個檔案前面加上一行 # -*- coding: utf-8 -*- 就過這關了 還要把您在PTT.py下面這幾行import的部分修掉有from .的部份 因為我是拉到同一個資料夾底下執行的所以這部分改掉即可 try: from . import Util from . import Version from . import ErrorCode from . import Informationexcept SystemError: import Util import Version import ErrorCode import Information 我嘗試執行的程式碼僅僅只有您在github上面的幾行 import PTT ID = '*******' Password = '*******' PTTBot = PTT.Library() ErrCode = PTTBot.login(ID, Password) if ErrCode != PTT.ErrorCode.Success: PTTBot.Log('登入失敗') quit() 接下來碰到uao這個library解碼的問題 執行到這邊 [12-07 15:40:19][資訊] 偵測到前景執行使用編碼: cp950 [12-07 15:40:19][資訊] 產生 SSH 金鑰完成 [12-07 15:40:19][資訊] 使用者帳號: ******** [12-07 15:40:19][資訊] 密碼: ******** [12-07 15:40:19][資訊] 連線頻道 0 啟動 [12-07 15:40:19][資訊] 頻道 0 建立互動通道成功 Traceback (most recent call last): File "ptt_lib.py", line 8, in <module> ErrCode = PTTBot.login(ID, Password) File "C:\Users\d\Desktop\ptt-overtor\PTT.py", line 754, in login ErrCode = self.__connectRemote(0) File "C:\Users\d\Desktop\ptt-overtor\PTT.py", line 667, in __connectRemote ErrCode, CatchIndex = self.__operatePTT(ConnectIndex, SendMessage=SendMessage, Refresh=Refresh) File "C:\Users\d\Desktop\ptt-overtor\PTT.py", line 411, in __operatePTT self.__ReceiveRawData[ConnectIndex], Len = uao.decode(self.__ReceiveData[ConnectIndex]) File "C:\Python27\lib\site-packages\uao\__init__.py", line 45, in decode result = u"".join(self._decode(input, errors)) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1 in position 0: invalid start byte 於是去看了411行發現您有嘗試幾行Code有用註解留下 本來是這行 self.__ReceiveRawData[ConnectIndex], Len = uao.decode(self.__ReceiveData[ConnectIndex]) 但我把他註解掉改用這行 self.__ReceiveRawData[ConnectIndex] = self.__ReceiveData[ConnectIndex] 程式終於沒有跳出exception 工程師最不想碰到的問題發生了 就是沒有跳出excption但是程式還是無法順利運作!! 不斷的出現這幾行LOG [12-07 15:48:17][資訊] 連線頻道 0 啟動 [12-07 15:48:17][資訊] 頻道 0 建立互動通道成功 [12-07 15:48:17][資訊] 頻道 0 讀取 PTT 畫面.. [12-07 15:48:28][資訊] 超時斷線,重新連線 我想可能跟paramiko建立連線的方式有關 小弟還在慢慢研究paramiko與PTTLibrary 不知道各位前輩或作者能夠指點迷津 ※ 引述《CodingMan ()》之銘言: : PTT Library 0.6.0 更新 : 支援 SSH 連線 : 新增水球的支援,可丟接水球 : 新增刪除文章 : 新增修改密碼 : 這次更新很開心地支援了 SSH 連線, : 再也不用裸奔了, : 也因為 SSH 連線取得的畫面從 big5 變成 utf8, : 分析畫面的方式都不一樣了, : 把心一橫結果就是兩千多行程式碼重寫。 : 這次比較特別的是,加強支援了水球方面的支援, : 並且實現了即時的文章抓取 api,以往過去使用網頁來抓取文章 : 會造成推文不即時的情況, : 這次實現了直接登入 ptt 一頁一頁的解析文章內文與推文。 : CodingMan : https://github.com/Truth0906/PTTLibrary -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.59.156 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1544171851.A.1B4.html

12/07 19:41, 5年前 , 1F
問題一單純就你的 python 有兩個 裝錯了
12/07 19:41, 1F

12/07 23:54, 5年前 , 2F
基本上我覺得應該要用python3以上跑比較好,你編碼問題就
12/07 23:54, 2F

12/07 23:55, 5年前 , 3F
是因為python2不支援中文,但3就可以了
12/07 23:55, 3F

12/08 00:35, 5年前 , 4F
大哥 你是不是本來是要回信啊?
12/08 00:35, 4F

12/08 00:43, 5年前 , 5F
我在github有寫 python3 呀QQ
12/08 00:43, 5F

12/08 00:48, 5年前 , 6F
用python 3吧 對unicode支援好多了
12/08 00:48, 6F

12/08 17:43, 5年前 , 7F
原來是小弟沒看清楚doc T___T
12/08 17:43, 7F
文章代碼(AID): #1S2Z5B6q (Python)
討論串 (同標題文章)
文章代碼(AID): #1S2Z5B6q (Python)