如何使用python抓取issues.apache.org上的bug列表

問題描述

開源在Apache的項目中,一般咱們會關心咱們開源的項目中天天bug的數量、最新的10條問題,統計各模塊的bug數量,按照人名統計等工做。但這些數據都在apache網站上,存在兩個問題,一個是國內日常訪問Apache若是不走代理就會比較慢;二是數據沒辦法供內部系統使用。

因而我想到用一個腳本天天定時運行來解決數據的問題。經過腳本從Apache上把數據拉下來存儲在本身內部數據庫中,基於本地數據庫運行的內部系統能夠完成各類圖表展現和數據統計的工做,這樣即提升了數據訪問的效率,也能夠很好的和內部系統結合完成自動化的問題跟蹤和解決。同時還能夠將外部系統和內部bug跟蹤系統進行對比,將重複的問題自動化的補充答案。等等,優勢多多。python

歡迎你們打開腦洞提出更多的方案!數據庫

1.使用說明

腳本依賴:

此腳本依賴於requests,各位點擊鏈接自取,安裝requests可能會依賴於pip,你們能夠把python升級到2.7以上安裝pip,2.7如下用網上教程會報錯。apache

腳本使用說明:

python SCRIPT_NAME FILE_NAME
SCRIPT_NAME:下面這段代碼所在的文件名
FILE_NAME: 將數據導入到的目標文件名,後綴默認爲csv網站

示例:

python jira.py ~/dataFile編碼

2.分享完整代碼

打開python的文件jira.py,內容以下:url

import requests
import sys
reload(sys)
##設置系統編碼,若是不是utf-8會有錯誤
sys.setdefaultencoding('utf-8')

dataFileName=sys.argv[1]
jiraFileName=dataFileName+'.csv'
print "Load from JIRA -------------------"
##load from JIRA
url = "https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-csv-all-fields/temp/SearchRequest.csv?jqlQuery=project+%3D+TRAFODION+AND+resolution+%3D+Unresolved+ORDER+BY+priority+DESC%2C+updated+DESC"
r = requests.get(url)
with open(jiraFileName, 'w') as f:
    f.write(r.text)

3.遇到的問題總結

1)操做系統中最初用的是python2.6的環境,結果安裝pip一直報錯,先是報沒有權限,這個只要用sudo能夠解決;接下來是報一些語法錯誤,以下圖:
圖片描述

2)系統編碼問題,不設置sys.setdefaultencoding('utf-8'),python腳本就會暴出編碼問題。
圖片描述spa

相關文章
相關標籤/搜索