問題解決:TypeError: unsupported format string passed to NoneType.__format__
寫在前面
今天看部落格的時候,有位小夥伴反應我之前的文章爬取軟科排名的程式碼不能用了。
軟科大學排名傳送門(11.17更新): https://blog.csdn.net/weixin_44578172/article/details/109340255
於是我又執行了一下之前的程式碼發現確實是不能用了,而且會報錯就是這樣↓
問題分析
為了幫助各位小夥伴理解,我將上面的報錯翻譯了一下就是這樣的:傳遞給NoneType的格式字串不受支援。
這是因為我們在對網站內容進行爬取的時候,如果爬取的對應位置沒有內容,python爬蟲獲取的值為 NoneType(<class ‘NoneType’>),又因為format格式化輸出不支援NoneType型別,所以結果當然報錯。
之後我看了網站的原始碼,發現確實有一些不一樣,就是td標籤中內容之前有了更多的空白(我大意了啊,沒有閃~),如下圖:
發現了這一點爬蟲人的警覺性湧上來了。我們知道string方法的作用是用來獲取目標路徑下第一個非標籤字串,得到的是個字串(不知道的小夥伴現在也知道了哈),但現在前面有很多空白,所以.string之後我們得到的也就是空白即NoneType。好了,現在我們知道問題的原因了,那麼解決方案如下
問題解決
用text方法代替string方法即可。text的作用是用來獲取目標路徑下的子孫非標籤字串,返回的是字串。然後我們在用.strip方法去掉頭尾空白就可以完美解決了。效果圖如下:
PS:關於string和text的區別,不太明白的小夥伴可以再查一查資料,我後面也會再整理些資料把text,get_text,string,strings等的區別給大家一一介紹
本篇完,如有錯誤歡迎指出~
相關文章
- 求助:TypeError: unsupported format string passed to NoneType.__format__ErrorORMNone
- TypeError: Descriptors cannot not be created directly問題的解決Error
- 關於Unsupported major.minor version 52.0報錯問題解決方案
- JAVA中String format的用法JavaORM
- Uncaught TypeError: external_echarts_.helper.createTextStyle is not a functionat Object.seriesModel.layoutInstance.ondraw問題的解決ErrorEchartsFunctionObject
- 報錯求助:Unsupported locator strategy: -ios predicate stringiOS
- 連結字串String.prototype.format字串ORM
- String.format()的詳細用法ORM
- Java中String.format變得更快 - MilošJavaORM
- 解決 TypeError: Type aliases cannot be used with isinstance(). 辦法Error
- Error: error:0308010C:digital envelope routines::unsupported 解決方案ErrorGit
- HBuilder解決:Error: error:0308010C:digital envelope routines::unsupportedUIErrorGit
- 提問題比解決問題更重要
- fmt包String(),Error(),Format(),GoString()的介面實現ErrorORMGo
- JAVA字串格式化-String.format()的使用Java字串格式化ORM
- 解決跨域問題跨域
- SERVICE問題解決方法
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- 解決mapper重名問題APP
- qeephp 解決跨越問題PHP
- 解決高度塌陷問題
- vue-專案中less報錯 Module build failed: TypeError: loaderContext.getResolve is not a function問題解決以及安裝lessVueUIAIErrorContextFunction
- java.lang.IllegalArgumentException: Unsupported class file major version xx解決之道JavaException
- std::string的find問題研究
- 解決 github 訪問不了的問題Github
- 解決github訪問慢的問題Github
- 解決 Github 國內訪問問題Github
- No module named MYSQLdb 問題解決MySql
- rabbitmq解決erlang版本問題MQ
- 解決高度塌陷、定位問題
- display:flex解決的問題Flex
- As常見問題解決方法
- WebSocket跨域問題解決Web跨域
- 解決中文亂碼問題
- Java解決跨域問題Java跨域
- Flask解決跨域問題Flask跨域
- MySQL 中文 like 問題解決MySql
- CROS 解決跨域問題ROS跨域