可以用VSCODE的右鍵→格式化文件,將JSON排的美美的@@大小有差,原76KB,美美96KB。CSV用記事本開啟就不會亂碼(EXCEL開會亂碼,感謝亞倫分享)
跟著書做遇到的問題
- 爬ibon動態網頁時,用append加dataFrame時,顯示要淘汰append方法,請改用concat。感謝stackOverflow分享,要放入陣列中。df711 = pd.concat(df711, df711_other) 成功。
第一類:
- 讀取JSON,要先 import json,
dict1 = json.loads (fr.readline())。dict1竟然不用先宣告(保險還是先宣告)。
JSON裡剛好是多筆的dict格式,所以用readline剛好就是一筆。
也可以直接載入整個json檔, data = json.load(json檔) - 讀取XML,import xml.etree.ElementTree as ET
抓XML資料比較多個步驟,
1.tree = ET.parse( 'read.xml') #別忘記
2.要取得根資料,root = tree.getroot() - 讀取JSON,好像只有XML、HTML不用 "with open"
記得要換行, \n。
yaml.dump寫入yaml檔。 - 給JSON資料,寫入到JSON檔。
json.dumps寫入JSON檔。 - 讀取DB檔,使用connect、cursor、execute,最後要將connect關閉。
cus = con.cursor() #別忘記
第二類:
- 給html網址,搜尋關鍵字。
要 import requests(讀取網頁內容),import re(感謝Chwang分享,這是正規化的模組)
用re.findall (關鍵字,內容) 來搜尋。感謝OXXO分享將網頁內容轉UTF8,html.encoding='utf8' - 抓網頁的資料,from bs4 import BeautifulSoup,感謝蟲王分享lxml與其他解析器的比較。
這裡也有findAll('td'),All是大寫的A。
findAll('TD'),不能寫TD(雖然網頁code顯示TD),但還是要寫td(小寫)
有稍作修改,但卡住(就是想直接抓資料的table名,是有抓到資料,但跟原本抓到的一樣@@在進一步抓td就出錯了) - 若是給網址就要 import requests,這裡是使用 find_all('div', {'class' : 'ball_tx ball_yellow'})
抓到的會出現亂碼,感謝IT人分享設定html=requests.get('https://www.codejudger.com/target/5203.html')html.encoding='utf-8' - 給JSON網址,所以 import requests,jsonFile = json.loads (html.text)
跟1-1不一樣,1-1是直接給json檔,所以用json.load(json檔) - 給JSON網址,所以 import requests,jsonFile是雙陣列,[ [ 台北市, 汐止 ] , [ 台北市, 基隆] , ... ]。所以老師應該會教,要先看資料內容吧???
第三類:
第四類:
- mpl.use('Agg'),感謝台部落分享,原來還有其他的GG。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。