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

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_type = re.search(pattern_vultype, vultype)
    if ft_type:
        writer.writerow([ft_published_date, eachmsrc, ft_kbnumber, ft_severity, ft_version, ft_summary, ft_type.group()])
    else:
        vultype = msrc_selector.xpath(‘string(//*[@id="mainBody"]/div[position()>3]/div/table)‘)
        ft_type = re.search(pattern_vultype, vultype)
        writer.writerow([ft_published_date, eachmsrc, ft_kbnumber, ft_severity, ft_version, ft_summary, ft_type.group()])
csvfile.close()
时间: 2024-10-06 12:40:30

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

htmlparser实现从网页上抓取数据

package parser; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.

用批处理抓取Windows版本信息

[1]Python 环境下比较简单,调用platform 模块即可 [2]没有Python 情况下,可以用ver 命令实现. >ver Microsoft Windows [Version 10.0.16299.967] <a>自动化用简单的Batch脚本[不推荐] :: ------------------------------------- :: Check Windows Version :: 5.0 = W2000 :: 5.1 = XP :: 5.2 = Server 200

python爬虫抓取哈尔滨天气信息

python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip install requests:pip install BeautifulSoup4) 代码:(亲测可以正确执行) 1 # coding:utf-8 2 """ 3 总结一下,从网页上抓取内容大致分3步: 4 1.模拟浏览器访问,获取html源代码 5 2.通过正则匹配,获取指定

Android登录客户端,验证码的获取,网页数据抓取与解析,HttpWatch基本使用

大家好,我是M1ko.在互联网时代的今天,如果一个App不接入互联网,那么这个App一定不会有长时间的生命周期,因此Android网络编程是每一个Android开发者必备的技能,博主是在校大学生,自学Android一年半多,正好通过一个模拟登录校园网软件,来给大家演示如何在网页上抓取我们想要的数据,以及将数据Post给服务器.如果有什么错误或改进欢迎大家指正=-= ,如果想交流博主qq 136057505 好的废话不多说看一下我们的重点 Httpwatch等软件抓取Post请求 如何获取验证码

C#网页爬虫抓取行政区划

借鉴C#网页爬虫抓取行政区划,从国家统计局获取了最新行政区域数据. 以下为代码贴片: 数据库类: public class City { public decimal ID { get; set; } public string Name { get; set; } public string Code { get; set; } public string Org_Level { get; set; } public string ParentCode { get; set; } public

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

原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约,影响日后借书,而自己又懒得总是登录到学校图书馆借阅系统查看,于是就打算写一个爬虫来抓取自己的借阅信息,把每本书的应还日期给爬下来,并写入txt文件,这样每次忘了就可以打开该txt文件查看,每次借阅信息改变了,只要再重新运行一遍该程序,原txt文件就会被新文件覆盖,里面的内容得到更新. 用到的技术: Python版本是 2.7 ,同时用到了ur

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

一.使用的技术 这个爬虫是近半个月前学习爬虫技术的一个小例子,比较简单,怕时间久了会忘,这里简单总结一下.主要用到的外部Jar包有HttpClient4.3.4,HtmlParser2.1,使用的开发工具(IDE)为intelij 13.1,Jar包管理工具为Maven,不习惯用intelij的同学,也可以使用eclipse新建一个项目. 二.爬虫基本知识 1.什么是网络爬虫?(爬虫的基本原理) 网络爬虫,拆开来讲,网络即指互联网,互联网就像一个蜘蛛网一样,爬虫就像是蜘蛛一样可以到处爬来爬去,把

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

gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页.gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定. JD网站的分析 要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页.那么我们通过找到所有分类就能逐个分类抓取商品信息. 入口地址 http://www.jd.com/allSort.aspx,这个地址是JD全部商品的分类列表,我们以该页面作为开始页面,抓取J

python实现爬虫(一)--- Scrapy框架抓取豆瓣书籍信息

Scrapy是一个用python实现都爬虫框架,简单易用,功能强大,只需要在框架的基础上自定义自己的分析规则即可,具体如何新建工程等待都在官方文档上面讲解得非常清楚,官方文档tutorial(http://doc.scrapy.org/en/latest/intro/tutorial.html)请保证下载较新版本的Scrapy(我的是0.24.2,scrapy -v)旧版本会出现一些问题. 下面我使用Scrapy抓取豆瓣上面编程书籍的一些简单信息 一.准备爬取的页面如下,新建一个douban工程