python实现电脑补丁替代关系输出并找到最新的补丁
工作中写的,算是经验的一点积累,我个人觉得也没啥太隐私的东西,放到博客中,有需要的小伙伴可以看看找找思路。刚开始学了几天就写的,大神勿吐槽。#!/usr/bin/env python# -*- coding: utf-8 -*-#2018/04/27import requestsfrom bs4 import BeautifulSoupimport re# 第一个页面获取版本号,然后...
·
工作中写的,算是经验的一点积累,我个人觉得也没啥太隐私的东西,放到博客中,有需要的小伙伴可以看看找找思路。刚开始学了几天就写的,大神勿吐槽。
#!/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.* \(KB\d{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("KB\d{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()
可能有个小知识点就是函数的循环调用。更多推荐
已为社区贡献6条内容
所有评论(0)