概述
工作中写的,算是经验的一点积累,我个人觉得也没啥太隐私的东西,放到博客中,有需要的小伙伴可以看看找找思路。刚开始学了几天就写的,大神勿吐槽。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#2018/04/27
import requests
from bs4 import BeautifulSoup
import re
# 第一个页面获取版本号,然后提供选择。
def get_patch():
url = 'http://www.catalog.update.microsoft.com/Search.aspx?q=' + KB
content = requests.get(url).content
soup = BeautifulSoup(content, 'html.parser')
data = str(soup)
data1 = re.findall('n.* (KBd{7})', data) #输出到界面用于选择版本
data2 = re.findall('goToDetails("(.*)")',data) #后台生成url需要的数据
i = len(data1)
for i in range(i):
print "获取到的版本分别为:%s" % (str(i) + '.' + data1[i].strip().replace('n',''))
print "请输入你需要的版本编号(0 - %s):" % i
input_number = raw_input("")
return data2[int(input_number)]
# 获取第二个页面的替换与被替换关系
def get_patch_info(c):
url = 'http://www.catalog.update.microsoft.com/ScopedViewInline.aspx?updateid='+ c
content = requests.get(url).content
soup = BeautifulSoup(content, 'html.parser')
data = str(soup)
data5 = re.findall("updateid=.*",data) #获取补丁对应的网址数据,有updateid的是data3
len1 = len(data5)
data2 = re.findall("KBd{7}",data)#这个是网页里所有的kb号,没有updateid的是data4,第一个为上一层的kb号
data3 = data2[1:len1]
data4 = data2[len1:]
print "本次输入的补丁包对应的版本被%s替换了" % data3
print "本次输入的补丁包对应的版本替换了%s" % data4
return data5
# 循环调用
def get_patch_newest():
for i in data1:
data5 = re.findall("updateid=(.*)">", i)
get_patch_info(data5[0])
if __name__ == '__main__':
# KB = 'KB4052978'
KB = raw_input('请输入kb号:')
print "获取补丁信息开始:%s" % KB
data1 = get_patch_info(get_patch())
get_patch_newest()
可能有个小知识点就是函数的循环调用。
最后
以上就是小巧红酒为你收集整理的python实现电脑补丁替代关系输出并找到最新的补丁的全部内容,希望文章能够帮你解决python实现电脑补丁替代关系输出并找到最新的补丁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复