Powershell实现:http://www.cnblogs.com/IvanChen/p/4488246.html

今天通过Python实现:

# coding=utf-8
import re
import requests
import csv
import sys
from lxml import etree reload(sys)
sys.setdefaultencoding('utf8') summaryurl = 'https://technet.microsoft.com/en-us/library/security/mt637763.aspx'
summarycontent = requests.get(summaryurl).content
selector = etree.HTML(summarycontent)
mslist = selector.xpath('//*[@id="mainBody"]/table/tr/td[2]/p/a/text()') pattern_published_date = re.compile(r"[a-zA-Z]*?\s[0-9]*?,\s[0-9]*")
pattern_severity = re.compile(r"[a-zA-Z]*$")
pattern_kbnumber = re.compile(r"\d+")
pattern_vultype = re.compile(r"Information Disclosure|Remote Code Execution|Elevation of Privilege|Security Feature Bypass|Cumulative Security Update|Denial of Service|Tampering|Spoofing", re.I) csvfile = file('eggs.csv', 'wb')
writer = csv.writer(csvfile, dialect="excel")
writer.writerow(['Date', 'MSRC', 'KB', 'Severity', 'Version', 'Summary', 'Type']) for eachmsrc in mslist:
msrcurl = "https://technet.microsoft.com/en-us/library/security/" + eachmsrc + ".aspx"
msrc_content = requests.get(msrcurl).content
msrc_selector = etree.HTML(msrc_content) published_date = msrc_selector.xpath('//*[@id="pubInfo"]/p[1]/text()')
kbnumber = msrc_selector.xpath('//*[@id="mainBody"]/h2/text()')
severity = msrc_selector.xpath('//*[@id="content"]/div[2]/h1/text()')
version = msrc_selector.xpath('//*[@id="pubInfo"]/p[2]/text()')
summary = msrc_selector.xpath('//*[@id="mainBody"]/div[3]/div/p[1]/text()')
vultype = msrc_selector.xpath('string(//*[@id="mainBody"]/div[3]/div)')
ft_published_date = re.search(pattern_published_date, published_date[0]).group()
ft_kbnumber = re.search(pattern_kbnumber, kbnumber[0]).group()
ft_severity = re.search(pattern_severity, severity[0].strip('\n ')).group()
ft_version = version[1]
ft_summary = summary[0]
ft_vultype = re.search(pattern_vultype, vultype)
if ft_vultype:
writer.writerow([ft_published_date, eachmsrc, ft_kbnumber, ft_severity, ft_version, ft_summary, ft_vultype.group()])
else:
vultype = msrc_selector.xpath('string(//*[@id="mainBody"]/div[position()>3]/div/table)')
ft_vultype = re.search(pattern_vultype, vultype)
writer.writerow([ft_published_date, eachmsrc, ft_kbnumber, ft_severity, ft_version, ft_summary, ft_vultype.group()])
csvfile.close()

从网页上抓取Windows补丁信息然后整型输出(Python)的更多相关文章

  1. 从网页上抓取Windows补丁信息然后整型输出(PowerShell)

    $report = [pscustomobject]@{'Date' = $null; 'MSRC' = $null; 'KB' = $null; 'Severity' = $null; 'Versi ...

  2. python爬虫抓取哈尔滨天气信息(静态爬虫)

    python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...

  3. Android登录client,验证码的获取,网页数据抓取与解析,HttpWatch基本使用

    大家好,我是M1ko.在互联网时代的今天,假设一个App不接入互联网.那么这个App一定不会有长时间的生命周期,因此Android网络编程是每个Android开发人员必备的技能.博主是在校大学生,自学 ...

  4. Java广度优先爬虫示例(抓取复旦新闻信息)

    一.使用的技术 这个爬虫是近半个月前学习爬虫技术的一个小例子,比较简单,怕时间久了会忘,这里简单总结一下.主要用到的外部Jar包有HttpClient4.3.4,HtmlParser2.1,使用的开发 ...

  5. 爬虫---selenium动态网页数据抓取

    动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...

  6. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  7. 教您使用java爬虫gecco抓取JD全部商品信息

    gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页.gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定. JD网站的分析 要抓取JD网站的全部商品信息, ...

  8. python写的爬虫工具,抓取行政村的信息并写入到hbase里

    python的版本是2.7.10,使用了两个第三方模块bs4和happybase,可以通过pip直接安装. 1.logger利用python自带的logging模块配置了一个简单的日志输出 2.get ...

  9. FakeLogonScreen抓取Windows凭证

    FakeLogonScreen抓取Windows凭证 实践中使用的配置 攻击者: 操作系统: Kali Linux 2020.1 IP: 192.168.1.13 目标: 作业系统: Windows ...

随机推荐

  1. java26

    1:网络编程(理解)    (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享    (2)网络编程模型    (3)网络编程的三要素        A:IP地址           ...

  2. UIPickerView选择器的使用方法

    UIPickerView是选择列表内容的控件 使用方法与UITableView类似 都需要用array传入数据 用Delegate DataSource中的代理方法实现各种显示功能 @interfac ...

  3. python logging模块笔记

    1 ) 给logger定制了两个日志级别INFO和DEBUG,分别通过filehandler添加不同输出到不同文件,但如何让DEBUG里只有DEBUG的信息? 答案:可重写DEBUG对应的Fileha ...

  4. grep 正则表达式

    本文转自:http://www.jb51.net/article/31207.htm 正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.aw ...

  5. 为何Redis要比Memcached好用(转)

    转载链接:http://blog.csdn.net/renfufei/article/details/40598889 GitHub版本地址: https://github.com/cncounter ...

  6. 比较典型的带case的group by语句

    2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果 ...

  7. [IDEA] 快捷键学习

    IntelliJ Idea 常用快捷键列表   Alt+回车 导入包,自动修正Ctrl+N   查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导 ...

  8. cookie编码乱码问题与cookie禁用后session操作

    Cookie传输的值只能是ASCII码,该编码表相对老旧不含有很多符号与文字 特别是中文,所以在cookie传值过程中需要先转成相应的ASCII编码再解析 如下 URLEncoder.encode(& ...

  9. IDF实验室:倒行逆施

    简单的PE文件逆向(.exe-IDA) 下载下来文件之后发现是一个exe文件,运行以后发现.

  10. Trie URAL 7192 Chip Factory (15长春J)

    题目传送门 题意:从n个数中选出不同的三个数a b c,使得(a+b)^c 最大 分析:先将所有数字按位插入到字典树上,然后删除两个数字,贪心询问与剩下的数字最大异或值. /************* ...