python爬取jira的项目信息

说明:
1、抓取jira中某个项目的bug信息,并输出对应的创建者和开发者
2、增加线程的使用,观察使用后,抓取速度的变化

from concurrent.futures import as_completed
from concurrent.futures.thread import ThreadPoolExecutor

from jira import JIRA
def get_bug_inf(bug):

    if(bug.get('inwardIssue')):

        bug_key = bug['inwardIssue']['key']

        bug_info = jr.issue(bug_key)


        info = {'assignee': bug_info.fields.assignee.displayName,
                'creator': bug_info.fields.reporter.displayName}


        issue_item = {
            bug_key: info
        }


        return issue_item
    else:
        return {}

if __name__ == '__main__':

    # 初始化
    jr = JIRA('http://jira.bg.huohua.cn/', basic_auth=('sunzhijie', '1qaz2Wsx'))

    issues = jr.issue('ASC-11498')

    # 该故事下所有的bug链接
    print(issues.raw)

    issuelinks = issues.raw['fields']['issuelinks']

    issue_list = []
    issue_dict = {}
	
	#增加线程的使用
    with ThreadPoolExecutor(max_workers=20) as t:

        for bug in issuelinks:
            # submit第一个参数为方法名,后面的参数为该方法的参数

            obj = t.submit(get_bug_inf,bug)

            issue_list.append(obj)
	
	#取得返回结果
    for future in as_completed(issue_list):

        issue_dict.update(future.result())


    print(issue_dict)

运行结果:
{'ASC-13807': {'assignee': '李XX', 'creator': '王XX'}, 'ASC-13814': {'assignee': '李XX', 'creator': '王XX'}}


版权声明:本文为xiaoka5210原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。