wooyun本地数据抓取
----
#-*-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本地数据抓取的更多相关文章
- python3爬虫再探之豆瓣影评数据抓取
一个关于豆瓣影评的爬虫,涉及:模拟登陆,翻页抓取.直接上代码: import re import time import requests import xlsxwriter from bs4 imp ...
- 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上
Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...
- Python数据抓取(1) —数据处理前的准备
(一)数据抓取概要 为什么要学会抓取网络数据? 对公司或对自己有价值的数据,80%都不在本地的数据库,它们都散落在广大的网络数据,这些数据通常都伴随着网页的形式呈现,这样的数据我们称为非结构化数据 如 ...
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
概要 这篇博客是在上一篇博客Phantomjs+Nodejs+Mysql数据抓取(1.抓取数据) http://blog.csdn.net/jokerkon/article/details/50868 ...
- Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)
概要: 这篇博文主要讲一下如何使用Phantomjs进行数据抓取,这里面抓的网站是太平洋电脑网估价的内容.主要是对电脑笔记本以及他们的属性进行抓取,然后在使用nodejs进行下载图片和插入数据库操作. ...
- Java实现多种方式的http数据抓取
前言: 时下互联网第一波的浪潮已消逝,随着而来的基于万千数据的物联网时代,因而数据成为企业的重要战略资源之一.基于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试! ...
- R语言XML包的数据抓取
htmlParse 函数 htmlParse加抓HTML页面的函数. url1<-"http://www.caixin.com/"url<-htmlParse(url1 ...
- Twitter数据抓取
说明:这里分三个系列介绍Twitter数据的非API抓取方法.有兴趣的QQ群交流: BitCrawler网络爬虫QQ群 322937592 1.Twitter数据抓取(一) 2.Twitter数据抓取 ...
- 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置
数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置 2013-05-15 15:08:14 分类: Python/Ruby 数据抓取是一门艺术,和其他软件不同,世界上 ...
随机推荐
- Web应用程序系统的多用户权限控制设计及实现-登录模块【4】
通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了. 登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载 ...
- 初识 TextKit
iOS 7 的发布给开发者的案头带来了很多新工具.其中一个就是 TextKit.TextKit 由许多新的 UIKit 类组成,顾名思义,这些类就是用来处理文本的.在这里,我们将介绍 TextKit ...
- iOS 验证邮箱手机号格式
做登录界面时,用户在UITextfield中输入输入邮箱账号后,我们应该在本地验证格式是否正确,再将参数传给服务器验证. 最简单的就是利用系统的NSPredicate //利用正则表达式验证 -(BO ...
- iOS开发之网络编程--1、AFNetwork 3.x 的所有开发中常用基础介绍
前言:第三方网络请求框架中AFNetwork 3.x收欢迎程度相当高的: 由于iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载 ...
- 关于在Xcode的OC工程中相对路径失败的原因
Xcode的工程生成的可执行文件不是默认在源文件同一个目录下面的,所以当可执行文件执行的时候,相对路径就不对了. 这一点用终端直接编译执行文件证明了这一点: clang -fobjc-arc -fra ...
- swift网络编程入门应用:天气预报
学习来自<小波说雨燕 第二季 网络编程(入门篇)> 工具:xcode6.4 首先在Main.storyborad中添加并设置好三个label做简单的界面显示: import UIKit / ...
- 开始玩mondrian
官网:http://community.pentaho.com/projects/mondrian/ 官方编译的包:https://sourceforge.net/projects/mondrian/ ...
- node.js之看懂package.json依赖库版本控制
金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.node.js依赖库的版本控制 一般node.js项目会依赖大量第三方module, 那么如何控制modu ...
- 使用culr
使用curl在采集有语言要求的网站时,首先需要发送带有语言设置的请求,再发送你要的请求如: 注:vget(); 这里没提供: $url='http://www.hotels.com/?locale=e ...
- Spring学习笔记之 Spring IOC容器(二) 之注入参数值,自动组件扫描方式,控制Bean实例化方式,使用注解方式
本节主要内容: 1. 给MessageBean注入参数值 2. 测试Spring自动组件扫描方式 3. 如何控制ExampleBean实例化方式 4. 使用注解方式重构Jdb ...