Redmine系统通过bug号解析页面内容及下载附件

from requests_html import HTMLSession
from urllib.request import unquote
import os
'''
redmine系统通过bug号解析页面内容及下载附件
'''
base_url = ''
cookies = dict(
_redmine_session='')
session = HTMLSession()
def get_bug(num):
url_sit = base_url % num
r = session.get(url_sit, cookies=cookies)
print('BUG地址 : ', r.html, '\n\n')
# 解析内容节点
print('====================开始时间====================')
print(r.html.xpath('//table[@class="attributes"]/tr[1]/td[2]/text()'), '\n\n')
html = r.html.xpath('//div[@id="history"]/div')
print('====================BUG描述====================')
print(r.html.xpath('//div[@class="description"]/div[2]/p/text()'), '\n\n')
print('====================更新记录====================')
for item in html:
print(item.xpath('//div/h4/a/text()'))
print(item.xpath('//div/div/p/text()'), '\n\n')
# 解析附件节点
html = r.html.xpath('//div[@class="attachments"]/p/a/@href')
if len(html) > 0:
create_subsidiary_dir(num)
for item in html:
if 'download' in item:
save_subsidiary('url' + item, num)
print('下载完毕')
def create_subsidiary_dir(dirs):
if not os.path.exists(dirs):
os.mkdir(dirs)
def save_subsidiary(url, num):
print('附件地址 :', url)
r = session.get(url, cookies=cookies)
with open(num + '/' + unquote(os.path.basename(url), encoding='utf-8'), 'wb') as wf:
wf.write(r.content)
if __name__ == '__main__':
index = input('请输入BUG号\n')
get_bug(index)
posted @   前端小鑫同学  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示