前言:
现时朋友们对“python中读取word中指定内容”大约比较关心,咱们都需要学习一些“python中读取word中指定内容”的相关知识。那么小编同时在网络上收集了一些有关“python中读取word中指定内容””的相关资讯,希望朋友们能喜欢,兄弟们一起来学习一下吧!前言:
本篇文章主要是分享如何通过python脚本来实现爬取confluence上的内容,来找到包含指定内容的页面。
(网上找了一圈也没有合适的内容,因此分享一下自己研究成功的代码)
我这个脚本主要就是为了排查confluence上是否有人将账号密码明文放在文章中
具体逻辑不详细介绍了,网上有很多,相关注意事项都写在了代码中了
'''writer by fly夏天'''import requests,openpyxlimport jsonnext = ""loop =2#遍历查询def search(next): if next == "": url = "url/rest/api/content/search" #这里的url需要替换成自己的confluence地址 #官方上写的路由很乱,实际上对内容搜索需要调用/rest/api/content/search这个api headers = { "Accept": "application/json", "Cookie":"JSESSIONID=JSESSIONID" #官网上给了好几种认证方式,我实测中都没有成功,还是这个靠谱,直接浏览器登录用生成的cookie来操作,授权上肯定是没问题 #请注意,如果你的代码正常运行没有错误产生,但无法搜索到结果,请检查此处的cookie授权是否有问题 } query = { 'cql': '{text~"密码" or text~"password" or text~"passwd"}' , #查询语句,text表示查询文本内容,其他标签可以查看官网上的介绍 #注:这里有一个坑,这儿的匹配不要写=而是要用~ 否则会出现匹配不到结果的情况 'limit':'10', #返回条数 'expand':"history.contributors", #expand包含的是额外的查询结果,history.contributors指的是文档的创始人 'next':next #confluence需要通过next来实现下一页的查询功能 因此我们需要提交这个参数 } response = requests.request( "GET", url, headers=headers, params=query ) else : response =requests.request("GET","url"+next) #这里的url需要替换成自己的confluence地址 #实际上next包含了初次查询需要构成的所有参数,因此在查询第二页内容的时候已经不需要构造初始查询的参数了 response_content = json.loads(response.text) next = response_content["_links"]['next'] #print(next) result = response_content['results'] deal_data(result) return None if next == "" else next#将爬取的结果写入exceldef deal_data(result): workbook=openpyxl.load_workbook("C:\\Users\\Administrator\\Desktop\\check_data.xlsx") sheet=workbook['Sheet1'] global loop for re in result: story = re['_expandable']['space'] #文章所有空间 type = re['type'] #文章类型 title = re['title'] #文章标题 webui ="url"+re["_links"]['webui'] #对应的网页链接地址,url需要替换成自己的confluence地址 #print(re['history']['createdBy']) if re['history']['createdBy']['type'] == 'known': user = re['history']['createdBy']['username'] else : user = "Anonymous" #user对应文章的创建者 #这里有一个小坑,如果是匿名用户创建的文章,就不存在username这个字段,因此需要进行一次判断 #正常运维的话建议关闭匿名用户的功能 sheet.cell(row=loop,column=1).value=story sheet.cell(row=loop,column=2).value=type sheet.cell(row=loop,column=4).value=webui sheet.cell(row=loop,column=3).value=user loop=loop+1 workbook.save("C:\\Users\\Administrator\\Desktop\\check_data.xlsx") #循环读取数据#注:本程序查询完成后会异常结束,但是不影响结果,懒得改了,凑合着用把while next != None: next = search(next)
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python中读取word中指定内容