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 数据抓取是一门艺术,和其他软件不同,世界上 ...
随机推荐
- Android logcat
logcat是Android中一个命令行工具,可以用于得到程序的log信息. 基本命令 logcat使用方法如下所示: [adb] logcat [<option>] ... [<f ...
- 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- apache-virtual host
NameVirtualHost xxx.xxx.xxx.xxx:80<VirtualHost xxx.xxx.xxx.xxx:80> ServerName xxx.xxx.x ...
- swap分区
swap分区 一块的新加进来的硬盘,我们要怎么给它创建swap分区呢?要遵循下面四个步骤: (1)使用一个现有的分区,比如记为A (2)然后分区类型的16进制编码,即A的16进制编码. (3)格式化A ...
- 初试cocos2d-x坐标系
bool HelloWorld::init() { ////////////////////////////// if ( !Layer::init() ) { return false; } Siz ...
- 续Gulp使用入门三步压缩CSS
gulp 压缩css 一.安装 gulp-minify-css 模块 提示:你需要使用命令行的 cd 切换到对应目录后进行安装操作. 在命令行输入 npm install gulp-minify-cs ...
- sublime学习
1:goto anything 特性 快捷键 ctrl + P @ : # 使用 2:多行游标功能 快捷键 ctrl + D ctrl + K 跳过选择 alt + F3 多选 产生 ...
- linux netstat 命令简解
Netstat 简介: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告.常见参数-a (all)显示所有选项,默认不显示LISTEN相 ...
- HADOOP namenode HA
参考的文章:http://www.cnblogs.com/smartloli/p/4298430.html 当然,在操作的过程中,发现与上述文章中描述的还是有一些小小的区别. 配置好后,start-d ...
- Hive2 jdbc test
package andes; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOExce ...