python爬虫 之 wooyun公开漏洞

本文介绍了一个Python脚本,用于爬取Wooyun网站上的漏洞报告数据,并将其保存到本地文件中。该脚本使用了requests库来获取网页内容,通过正则表达式解析所需的漏洞信息。

准备加上一些小功能。

重新写了一下代码,先保存在这里:

#coding=utf-8
import requests
import re
def first():
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
def get_raw(url):
    print url
    headers = {'content-type': 'application/json',
               'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
    r = requests.get(url,headers=headers)
    return r.text

def get_wooyun_content(raw):
    p = re.compile(r'<th>([0-9\-]+)</th>[^<]*?<td><a href="/bugs/wooyun-([^>]+)">(.*?)</a>[^<]*?<(?:img src="/images/(credit)?(m[1-3])?)?[^<]*?<(?:img src="/images/(m[1-3])?)?[^#]*#comment">([^<]+)[^"]*"(.*?)"')
    content = re.findall(p,raw)
    return content

def save_content(content):
    #date url name  m123 hot owner credit
    with open('grab_wooyun.txt','a') as f:
        for i in content:
            i = list(i) #元组转换成列表,列表可以修改
            value = i.pop(5)
            i[4] = str(i[4]) + str(value)
            #print i
            # 把name移到最后
            value = i.pop(2)
            i.append(value)
            if not i[2]:i[2] = 'null'
            if not i[3]:i[3] = 'null'
            #print i
            item = ' '.join(i)
            f.write(item+'\n')

def main():
    first()
    pages=1932
    for i in range(1,pages+1,1):
        url = 'http://wooyun.org/bugs/new_public/page/' + str(i)
        raw = get_raw(url)
        content = get_wooyun_content(raw)
        save_content(content)

if __name__ == '__main__':
    main()





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值