今天在爬取某網站數據內容適合,通過正則匹配拿到了需要的內容字符串,但是在反序列化的時候竟然報錯,大概意思知道他不是json的期望值,那么我就會想是不是數據內有一些內容是由於編碼的問題導致的呢?因為之前爬一些內容時候在打印一些爬到的東西這些內容是打印不出來的,因為python中的打印好像用的是gbk默認,而且修改不了好像,雖然在頭部設置了utf8,但是只是當前程序的編碼解碼utf8,打印仍然是gbk。后來一想,不對啊,這里的內容我是打印出來了的。而且在一些網站上做json校驗的時候是沒有問題的,從網上查詢了好多,但是幫助不大,由於字符串長度太長了,最后實在憋得沒辦法了,那么我就一段一段的內容復制過來做驗證吧,花了好長時間一點一點的使,到最后都可以被json.loads、、、、后來想拿我就反着來吧,刪除了‘;’號,竟然好了,最終明白,確實不是json的期望值,其中‘;’是一個,還有一個尾部的空白行也是不行,中間嘗試的時候我嘗試把‘;’replace成'',都不行,那會是直接從頁面獲取的數據不是粘貼過來的,應該是默認帶了空白行或者是換行符了,所以需要把這些也去一下,其實就是把';'和‘ ’replace掉就好了。
簡潔一點:字符串不符合反序列化的要求,非法內容存在。