今天是放假日,但花時間研究的問題是:為什麼百香果的故鄉是在南投?每次有人問這個問題,總是要上網找資料, 本篇文章將介紹如何用不到20行Python程式就能從農情報告資訊網中算出南投百香果產值佔合國87.7%。
以下是程式的執行結果:
程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import requests from bs4 import BeautifulSoup my_data = {'accountingyear': '109', 'item': '03', 'crop':'643', 'city':'00'} r = requests.post("https://agr.afa.gov.tw/afa/pgcropcity.jsp",my_data ) soup = BeautifulSoup(r.text, 'lxml') result = soup.find("div", class_="DivRestTbl") h = {} n=9 while result.select('td')[n::1]: d = {} for th, td in zip(result.select('td')[1:5], result.select('td')[n+1::1]): d[th.text.strip()] = td.text.strip().splitlines() h[result.select('td')[n].text]=d n+=5 print('南投縣的收量是', h['南投縣']['收量'][0], result.select('td')[8].text) print('全國的收量是', h['合\u3000\u3000計']['收量'][0], result.select('td')[8].text) print('南投收量佔全的',int(h['南投縣']['收量'][0].replace(',',''))/int(h['合\u3000\u3000計']['收量'][0].replace(',',''))*100, '%') |
程式解說:
第1-2行為引入爬蟲的套件。
第3-6行是採用POST來讀取資料,並找出<div>標籤且類別為"DivRestTbl"。
第7-14行是把資料打包成二維的字典,且能用縣市來當成鍵值來讀值,而且也能讀取收量等數值。
第15-17值是顯示,注意因收量的值是字串,需要用int()函式來轉換,因為有三位加上',',所以要用replace()函式來去除','。
第15-17值是顯示,注意因收量的值是字串,需要用int()函式來轉換,因為有三位加上',',所以要用replace()函式來去除','。
沒有留言:
張貼留言