軟件建立所需的工具及其版本
編寫環境與
IDE
Python3.5.2
Windows10
PyCharm
2016.3
Sublime
Text3
第三方庫與版本號
Requests
2.12.1
BeautifulSoup
4.5.1
PYQT5
5.8.1
Pyinstaller
庫的作用
用于爬蟲編寫
用于爬蟲編寫
用于軟件
GUI
設計
用于封裝
python
程序
1.1
百度地圖數據的抓取
一般我們研究區域污染狀況成因時,
需要找出污染源的坐
標,
就宏觀研究而言,
百度地圖是一個很好的選擇。經過分析,
百度地圖提供一個接口:
http://map.baidu.com/?newmap=1&req?
flag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=
pc4.1&qt=con&from=webmap&c=233&wd={}&pn={}
。其中
wd
代
表的是所需的查找內容,
pn
用于翻頁。需要指出的是,
如果訪
問過于快速,
會出現訪問不成功現象,
這時需要放慢抓取速度
與設置斷點續傳的功能
[3]
。抓取數據坐標是百度墨卡托坐標,
與經緯度坐標有很大出入,
需要進行坐標轉換。
1.2
空氣質量數據的抓取設計
本軟件的空氣質量數據來源于網站:
http://www.pm25.in/
。
在抓取中由于
PC
端的網頁采取的
Ajax
所以學采用
Selenium
與
Phantomjs
抓取,
但是會大量占用電腦內存與
CPU
。故筆者將
Headers
設置成手機以便正常抓取。由于代碼較長不在此
放出。
1.3
空間熱度圖與點密度圖繪制的設計
可以運用
Python
的標準庫
matplotlib
繪制空間的點密度,
熱
密度圖,
及將上述地圖中收集的數據反應的地圖中。本軟件只
是應用
hexbin
函數做了簡單的繪制。由于需要將
matplotlib
嵌
入
PyQt5
開發的窗口內代碼較長,
不再給出。
2
基于
PyQt5
的
GUI
設計
2.1
功能的描述
運用
PyQt5
進行
GUI
設計,
將上述
6
個爬蟲進行封裝
[2]
。其
中空氣質量按鈕對應空氣質量數據收集
(自動每一小時收集一
次)
。其中,
坐標轉換按鈕為百度地圖收集的數據的坐標轉換
(需要
key
)
。
2.2
界面的設計與運行情況
為了簡化界面,
將界面中的菜單欄與狀態欄統統刪除,
只
留下
6
個爬蟲的相關按鈕并盡可能放大
,
,
如圖
2
。為了保證界
面的美觀性,
不再允許用戶將界面最大化,
即固定主界面的大
小。其中空氣質量數據,
氣象數據,
百度地圖,
高德地圖的二級
界面基本一致,
輸入爬取內容與保存位置點擊開始即可。
對于地圖繪制功能,
是本軟件實現的難點內容。需要將
matplotlib