准备加上一些小功能。
重新写了一下代码,先保存在这里:
#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()
本文介绍了一个Python脚本,用于爬取Wooyun网站上的漏洞报告数据,并将其保存到本地文件中。该脚本使用了requests库来获取网页内容,通过正则表达式解析所需的漏洞信息。

1815

被折叠的 条评论
为什么被折叠?



