----

#-*-coding:utf-8-*-
import re
import urllib
import MySQLdb
import time
from urllib import unquote def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
html = html.replace('\n', '')
html = html.replace(' ', ' ')
html = html.replace(' ', '')
html = html.replace(' ', '')
#html = html.replace(' ','')
return html return mylist def gettitle(mylist):
reg = (r'<a href="/bugs/wooyun-.+">(.*?)</a></td>')
listre = re.compile(reg)
mytitle = re.findall(listre, mylist)
return mytitle def getoper(html):
reg = (r'/whitehats/(.*?)">')
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist[0]
#------------------------------------------------- def GetTitle(html):
reg = (r"漏洞标题:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def BugNum(html):
reg = (r'http://wooyun.org/bugs/(.*?)">查看原始来源')
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def JiaFang(html):
reg = (r'http://www.wooyun.org/corps/(.*?)">')
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def SubmitTime(html):
reg = (r"提交时间:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def OpenTime(html):
reg = (r"公开时间:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def BugClass(html):
reg = (r"漏洞类型:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def level(html):
reg = (r"危害等级:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def BugState(html):
reg = (r"漏洞状态:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
mylist = mylist[0].strip()
return mylist def BugSave(html):
reg = (r'<a id="collection_num">(.*?)</a>人收藏')
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def OkTime(html):
reg = (r"确认时间:(.*?)</p>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def Bugrank(html):
reg = (r"漏洞Rank:(.*?)</p>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def BugMark(html):
reg = (r"Tags标签:(.*?)</h3>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
return mylist def ignoreTime(html):
reg = (r"忽略时间:(.*?)</p>")
listre = re.compile(reg)
mylist = re.findall(listre, html)
if len(mylist)!=0:
mylist=mylist
else:
mylist='1900-01-01 00:00:00'
return mylist def Bugeye(html):
reg = (r'<span id="attention_num">(.*)</span>')
listre = re.compile(reg)
mylist = re.findall(listre, html)
mylist = mylist[0].strip()
return mylist conn= MySQLdb.connect(
host='192.168.1.1',
port = 3306,
user='root',
passwd='root',
db ='wooyunTongji',
charset='utf8'
) mark = 0 for i in range(53022, 89250, 1):
try:
Url = 'http://192.168.1.106/wooyun/select.php?id='+str(i)
Html = getHtml(Url)
Htmleye = getHtmleye(Url)
except:
print 'error'
if len(Html)>100: if len(OkTime(Html)) == 0:
whotime = ignoreTime(Html)[0].strip()
whostyle = '忽略'
else:
whotime = OkTime(Html)[0].strip()
whostyle = '确认' if len(Bugrank(Html)) < 1:
BugrankFal='0'
else:
BugrankFal=Bugrank(Html)[0] print GetTitle(Html)[0].strip() \
,BugNum(Html)[0].strip() \
,unquote(JiaFang(Html)[0].strip()) \
,unquote(getoper(Html)) \
,SubmitTime(Html)[0].strip() \
,OpenTime(Html)[0].strip() \
,BugClass(Html)[0].strip() \
,level(Html)[0] \
,BugrankFal\
,BugState(Html) \
,whotime \
,whostyle \
,BugMark(Html)[0].strip() #f = open('wooyunlist.txt', 'a')
mark += 1
#f.close()
cur = conn.cursor()
mysql1='insert into alldata (id,title,BugNum,jiafang,oper,submittime,opentime,bugclass,level,bugrank,bugstate,oktime,okstyle,bugmark) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
cur.execute(mysql1,(mark,GetTitle(Html)[0].strip(),BugNum(Html)[0].strip(),unquote(JiaFang(Html)[0].strip()),unquote(getoper(Html)),SubmitTime(Html)[0].strip(),OpenTime(Html)[0].strip(),BugClass(Html)[0].strip(),level(Html)[0],BugrankFal,BugState(Html),whotime,whostyle,BugMark(Html)[0].strip())) cur.close()
conn.commit()
print mark conn.close() print('Over!')

  

wooyun本地数据抓取的更多相关文章

  1. python3爬虫再探之豆瓣影评数据抓取

    一个关于豆瓣影评的爬虫,涉及:模拟登陆,翻页抓取.直接上代码: import re import time import requests import xlsxwriter from bs4 imp ...

  2. 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上

    Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...

  3. Python数据抓取(1) —数据处理前的准备

    (一)数据抓取概要 为什么要学会抓取网络数据? 对公司或对自己有价值的数据,80%都不在本地的数据库,它们都散落在广大的网络数据,这些数据通常都伴随着网页的形式呈现,这样的数据我们称为非结构化数据 如 ...

  4. Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)

    概要 这篇博客是在上一篇博客Phantomjs+Nodejs+Mysql数据抓取(1.抓取数据) http://blog.csdn.net/jokerkon/article/details/50868 ...

  5. Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)

    概要: 这篇博文主要讲一下如何使用Phantomjs进行数据抓取,这里面抓的网站是太平洋电脑网估价的内容.主要是对电脑笔记本以及他们的属性进行抓取,然后在使用nodejs进行下载图片和插入数据库操作. ...

  6. Java实现多种方式的http数据抓取

    前言: 时下互联网第一波的浪潮已消逝,随着而来的基于万千数据的物联网时代,因而数据成为企业的重要战略资源之一.基于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试! ...

  7. R语言XML包的数据抓取

    htmlParse 函数 htmlParse加抓HTML页面的函数. url1<-"http://www.caixin.com/"url<-htmlParse(url1 ...

  8. Twitter数据抓取

    说明:这里分三个系列介绍Twitter数据的非API抓取方法.有兴趣的QQ群交流: BitCrawler网络爬虫QQ群 322937592 1.Twitter数据抓取(一) 2.Twitter数据抓取 ...

  9. 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

     数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置 2013-05-15 15:08:14 分类: Python/Ruby     数据抓取是一门艺术,和其他软件不同,世界上 ...

随机推荐

  1. 基础学习day07---面向对象三---继承,接口与 抽象类

    一.继承 1.1.继承概念 将对象的共性抽取出来.提取出一个单独的类. 继承使用复用以前的代码非常容易,能够大大的缩短开发周期,降低开发成本,同时增加程序的易维护性 继承使重一个类A能够直接使用另外一 ...

  2. iOS开发中的一些细节BUG的解决

    这篇博客里我将不定期更新自己遇到的一些细节上的BUG,并提供解决方法,遇到同样问题的童鞋们可以参考交流一下. 1.关于tableView的tableHeaderView 请注意,我这里说的是table ...

  3. 百度地图开发的学习(一)——配置环境&基础地图

    由于项目需求缘故,最近在学习Android地图的开发,所以就记录一下学习过程.最近都会陆续更新啦.目前使用百度地图API的挺多的,所以就先以它为基础学习一些地图的调用. 一.AK的申请 与web开发不 ...

  4. animation of android (4)

    TimeAnimator: 与objectAminator不同,它反馈的时间间隔.也就是说TimeAnimator不产生实际的动画效果,他反馈的时间间隔和时间值. 而你并不关心 interpolate ...

  5. mysql集群之MYSQL CLUSTER

    1. 参考文档 http://xuwensong.elastos.org/2014/01/13/ubuntu-%E4%B8%8Bmysql-cluster%E5%AE%89%E8%A3%85%E5%9 ...

  6. olcal数据库经典SQL语句大全

    基于olacle自带的表 第一篇 -----1.列出至少有一个员工的所有部门. oracle 一些经典sql第一篇 --------1.列出至少有一个员工的所有部门.---------  SQL> ...

  7. Gradle深入与实战(转)

    转自:NO END FOR LEARNINGhttp://benweizhu.github.io/blog/2015/01/31/deep-into-gradle-in-action-1/ 什么是构建 ...

  8. (转载)APP测试点总结

    以下所有测试最后必须在真机上完整的执行1.安装.卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2.启动app测试3.升级测试 数字签名.升级覆盖安装.下载后手动覆盖安 ...

  9. 手工搭建Openvpn

    环境: CentOS 6.4 (final) x86_x64 gcc-4.4.7-16.el6.x86_64 gcc-c++-4.4.7-16.el6.x86_64 lzo-2.03-3.1.e16_ ...

  10. [转] KVM Internals, code and more

    KVM Kernel-based Virtual Machine Internals, code and more http://slides.com/braoru/kvm#/ What behind ...