Skip to content

Commit 22080b0

Browse files
committed
添加sqlite3
1 parent e50c88f commit 22080b0

17 files changed

+440
-198
lines changed

.idea/sqldialects.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

+217-101
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cache/.empty

Whitespace-only changes.

cache/360.dat

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
4ccd2f7a40228689ffa2e53035851b06
2-
30770b38066bd2dbceade9d6d8ba0dab
3-
57413b74c5b4624e1622fdfa9aec9da5
4-
a4ad6639ce81b49f8ccd41b2aff66e5e
5-
30611411a0eaad9f43a789588b85e311
6-
013b94c71aa9b1c5ed302cfe4426b8ca
1+
027b922fc3cae6e7ca0a8f436b2b86e4
2+
ee3dce97c903a8f3301eeb3a36c6da95
3+
898b5097042343c9f13f1849e8357954
4+
d745dfd09efb36e3f5aa25dc0d21819a
5+
b4f7c75bde57c131d627d028f313a138
6+
87435d97a0feffa097f176bb4ece709f

cache/AnQuanKe.dat

+40-40
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
1-
b084ccbd439974403825d18c63e3fae3
2-
8dcb656dcea4ec66f08dc347bee44bf5
3-
073892da5946de068315b2724c2ed283
4-
c7a405e57fee82beb686a7f1a364b429
5-
120664e642bb633ce35e80c5476af698
6-
8a29afa24fbc9f59d3a77fbb67aa2734
7-
8a351166e098f54e24fa96b2ad65f53f
8-
d32ccb1a7cab23af55b1abb6f397064c
9-
14f6e137054325f82209bb2147bcb7d9
10-
e31a7e1a598caedf5a67b6072b301120
11-
30af3c790212245f56b6db69c9496467
12-
c13d8deb81f8bf22fd4161923549ab36
13-
c5c1454b9e08844d78d39e65099855a0
14-
9dcc877d239e772317507ceed25cd237
15-
8f5c143438cec05f0508bd066b1866d0
16-
bad4bf2c02ae29fefca48b8e4bd6f02d
17-
325d3ca07f8085654d011c07b0a24284
18-
ba56ba9d840015ac5df74ceffef51508
19-
3566d5b8cf11860bd17ec3cf338bacda
20-
c937babd5350684c08fccb9a497bc7d8
21-
233e979b0265647f7ee70310f50d33e9
22-
2386e98272fd68923526e92069010d93
23-
f3957fca65e210631854065c6293ff42
24-
cbd6743f889954b70d94d9220e28d03f
25-
b221cbb1f195abab906a99b48509565b
26-
a3cc1b1c177341e1cc0ef1d9c0d3675d
27-
434d23a99a816e20357eb7fc547247f8
28-
401ba59bbd29f6791549cb42e7aded53
29-
8a8ed4834d1da33a49710c3ce6b0c789
30-
95176090c6fefd88a79089d046e1d504
31-
9357105eab64e6ab84881dcf91b1c6d6
32-
160781ebaad034f6abd6217c77a90026
33-
7c8f8b82fa11089201addca65489fc79
34-
1d54ae73b2cedc16859e086de39f39ae
35-
c58319ae8c82cd319844ff2cc58d9088
36-
46a675b4cbc19821374c0f7b49ca502e
37-
801e78aa22358f92a4ae882220452f1f
38-
71b213d87ce3edc79116890ea205c4f2
39-
35aee40182eb7a989c4073a997dd31bc
40-
efd98fa539fe9003b6241fcb2d9d9030
1+
29bca901bad8eca0b4b4c815b2942b56
2+
539cd05def97df85d730dd3a2463f6cf
3+
33415330cf5956d4d18befa78eae760f
4+
dc11dd0c613a5961199a54639fba53dc
5+
2a2755eefc47df5357c41a5b54dd67bf
6+
d2b1b8c3ccf1e0ffb3270b0b7b21998c
7+
7b999a39331f1bbeb330da5b8be79842
8+
dccb882984075e8ae693498b8d33373c
9+
0d85245523b6646833692af57dd1daa9
10+
d0f03f90358904908ac07a397ce0ad19
11+
c3b1595f953bbaf987205c725311515d
12+
818f596c36829f92e95dad79d91ea421
13+
3a93ec68e70def4c66d1abb4a40834c6
14+
c77677bd58cb715055ddca164987ce73
15+
3fa2df6d799d957980b3a1031da55c35
16+
222cb3f21218d6696a6a6292d1e184eb
17+
80f737863fe2e089cc9b111bf793ab99
18+
8365c0f058368b9401f49587a0caacc3
19+
ea2a851918a05a26b84ca68a4cac9ec7
20+
1ee83e405398d407cee708cd8a38f283
21+
a06545c2c654f33d9d258ce7fc2d2281
22+
f44af5f92c3858c60725f6d7d144c9e4
23+
a8fb31c48accd24267c84332a90a5f40
24+
b2b94426ce14f482042c031c45453983
25+
bc9241f17f76fb06bafbea7c02b1c558
26+
a6066f25e255deddaddb2434ada150ea
27+
b0a333126f61d2c5d843215dd6c8b958
28+
27d73ef57d41324faf3e857eb5a95739
29+
3dba915c4ff432b3e899e226d3687c9d
30+
d04df9fbce7c3021d3ec734d8aefd4f7
31+
f1fb89bec43e0c444a3570cab759e8bd
32+
1edf6b5faf88c95e12682afebe3313be
33+
84df6a6fc403d81658b92d2c97c4fa5f
34+
2d7e41d776d0058883ad129184a3adba
35+
0ea15592705b49799593b837912421bc
36+
bb25027d4d700f932d71f381753c4301
37+
713902d222bf9bc48b1b09f4276bfc59
38+
2d7a6ed87d953792f49711f6c9eef0b1
39+
13dd04d90771316a8e0ebed08c451fa6
40+
5faedc6e8386d63e7dd0091a518d074b

cache/Nsfocus.dat

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
fa8583e7ae5a08302ab70ce90689ba58
2-
73e6c42b6ea4388547d14fd2d1163380
3-
302398a5754637d0cdc6acc34b5d3edf
4-
3676f481649a95d2cd7031edac2bd80b
5-
ecb1ead92ef563ca25f4372932664e5b
6-
6b35b527f6751cc0bbc1cf3082fd3067
7-
792a52f437fc90b406d3cfb269ca336f
8-
e16013573edcad2f8d909ab5d0d9d9bc
9-
56ea3c64d3a1518d7c3a717576e4bd4e
10-
11601eedbafa99cf863ec4c2d4ef839e
11-
390e46bdf3b47bfedd7515385a62320a
12-
9e3498f9f2c022c5bb0a9f02ae15fb4e
13-
c8de1f8ad0d5da5ac7016ee2f0d291db
14-
59d1cb2aac335119e63588567b17592f
15-
f5b3de3a245859b62cff9c3b181ea460
1+
a9f728e62fc2b23012533d909da0126f
2+
24119c5854ad964706613944d1511592
3+
416a6f68c779a9e1360fe7ee1c1a7ffd
4+
0ecbbfa5c39c3596cb325edbf473fd1b
5+
5c8932d357b5c4df7b2183e6286ec55d
6+
94753240a9f7cdcb6a0c5b31703ce13e
7+
030f70c142bff76dc9f10711f86c3f59
8+
0ce59b5a0aac23cea9dcb195099128f6
9+
df6d29f11e4c311a92ff4ed0661ec9f1
10+
f4f0701b017670b1d004ee8f5533c6d6
11+
531e46762b7f305584f32e6c741340c4
12+
8324b54fb45223aac86405c4c933cc39
13+
e4ca9772e6ef5b0a8ef8d9e495ee5740
14+
62f57cb8731199801080424db40eb70c
15+
b011978355c3aa91754a127663db1399

cache/QiAnXin.dat

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
90b93cb7073fe73b17746ac166a09637
2-
e318a5efa4803b50cdef480b90b1784d
3-
cffc3035f7899495cfeae521451f91b2
4-
3e6175d47d17c6f94bd9ba10d81c3717
5-
d99d073afb7d248a8a62fb068921997f
6-
b7b45b14a3af1225ef6eec72d74964df
7-
504fc79f0123db109a11b149c334b75c
8-
5b727692d583d4a6e7cdb0f670eac12a
9-
54b48d765fccbc8dcfa3de0920459f8d
10-
5b4d5fea09fbc2dca45be53f162d39de
1+
ec11de324a43e3f6ce1984cd4a4f0540
2+
bb0c0ee209d91a9547ba1382663b675d
3+
34cca1697a489fd01f475cde95e5b79d
4+
e275a418260736a4b42c39b8a93680a4
5+
02ee42adbb25c0a556d787b5d0ce2207
6+
a904e7c4b3701901693ed23f17c3233e
7+
f9238620633659d1338b46aab96d29ca
8+
95dbb7aca0383535115e125ac5cc5ddf
9+
55f52656d300ae00d3f9f581b8cf5898
10+
143db827d8aed61603c8d96f79a3744c

cache/RedQueen.dat

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
27116b86fcb0ba678cc0b792f6b2e99d
2-
fb4f61b831968a765ff68bde1f4c373a
3-
6e59bc98e0626e2ce7a88d8432d51111
4-
3888601684d7f26f41e3fe54f9082864
5-
616638911973132683942339ab7b1c0d
6-
42b40b2496baa5ad4a0bc54e694c77a5
7-
4ee90b66222a18a5b0a927c87b2abec8
8-
cffc9a5293606d33e221e27e7b1a8932
9-
f0de0fb4f82e14ac52d71bafa71a5543
10-
2cfdcfdf5b3d04a08396a5ce4807288f
1+
eefacf81ef9f632df900a7ef6c0444b0
2+
fbe158e119496d55f85694b73b535aaa
3+
5bdebad01518b7c9fcac8e88fb320ce1
4+
b473db5e054009888c5e612dd38598ca
5+
56656a3fbb040cf9dc09f4a49cd29346
6+
d7d611fbf6528627b4c143e104cb0842
7+
b82edc0cd73b844f0df5395bd6489708
8+
6fdc5025e0d39ed3d25bd670ea30f4d0
9+
82317c027376d876ce577d714c41c9ed
10+
f75b85d4fe32395f4ea77a27f33c36d0

cache/vas.dat

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
faa5de1bb89669fb071e637486ce1226
2-
262557113cf7c8f230d66347b7c13095
3-
62445307db0fa2eaea15de0fe87244f1
4-
49ed8eb720e2789ac5628199620acfc5
5-
66cb99b686cd672c59a987932426f2a2
1+
b00f087b3c4b01bb74b99436d2357fcf
2+
63bb5a251524834418d4bbc032978e37
3+
c74b79538fc02baf184fa5fca614f824
4+
3b890e303e116e80ab58be97f9e946ce
5+
22458f5182f4713d9fdf5b327e05487b

data/cves.db

8 KB
Binary file not shown.

log/.empty

-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
# Copyright (C)
2-
# Author: EXP
3-
# Site : http://exp-blog.com
4-

script/cves-create.sql

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CREATE TABLE IF NOT EXISTS `t_cves` (
2+
`s_md5` TEXT(64),
3+
`s_src` TEXT(32),
4+
`s_cves` TEXT(128),
5+
`s_title` TEXT(256),
6+
`s_time` TEXT(20),
7+
`s_info` TEXT(2048),
8+
`s_url` TEXT(256)
9+
);

script/cves-rollback.sql

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DROP TABLE IF EXISTS `t_cves`;

src/bean/cve_info.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def is_vaild(self):
2727

2828
def MD5(self):
2929
if not self.md5:
30-
data = '%s%s%s' % (self.id, self.title, self.url)
30+
data = '%s%s%s%s' % (self.id, self.title, self.time, self.url)
3131
self.md5 = hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()
3232
return self.md5
3333

src/cfg/env.py

+5
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,9 @@
77

88
import os
99

10+
CHARSET = 'utf-8' \
11+
''
1012
PRJ_DIR = os.path.dirname(os.path.abspath(__file__)).replace(r'/src/cfg', '').replace(r'\src\cfg', '')
13+
14+
SQL_PATH = '%s/script/cves-create.sql' % PRJ_DIR
15+
DB_PATH = '%s/data/cves.db' % PRJ_DIR

src/main.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
# -----------------------------------------------
77

88
import sys
9+
from src.cfg import env
910
from src.utils import log
11+
from src.utils.sdbc import SqliteSDBC
1012

1113
from src.crawler.cert360 import Cert360
1214
from src.crawler.nsfocus import Nsfocus
@@ -18,9 +20,14 @@
1820

1921
def init():
2022
reload(sys)
21-
sys.setdefaultencoding('utf-8')
23+
sys.setdefaultencoding(env.CHARSET)
24+
2225
log.init()
2326

27+
sdbc = SqliteSDBC(env.DB_PATH)
28+
sdbc.init(env.SQL_PATH)
29+
30+
2431

2532
def main(a, b, c):
2633
srcs = [ Cert360(), Nsfocus(), QiAnXin(), RedQueen(), AnQuanKe(), Vas() ]
@@ -60,9 +67,5 @@ def get_sys_args(sys_args) :
6067
init()
6168
main(*get_sys_args(sys.argv))
6269

63-
# import sqlite3
64-
#
65-
# conn = sqlite3.connect('test.db')
66-
#
67-
# print "Opened database successfully"
70+
6871

src/utils/sdbc.py

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
# @Author : EXP
4+
# @Time : 2020/4/29 22:14
5+
# @File : sdbc.py
6+
# -----------------------------------------------
7+
# Sqlite 数据库接口
8+
# -----------------------------------------------
9+
10+
from src.utils import log
11+
import sqlite3
12+
13+
14+
class SqliteSDBC:
15+
"""
16+
Sqlite 数据库封装类
17+
"""
18+
19+
def __init__(self, dbpath='test.db'):
20+
"""
21+
构造函数
22+
:param dbname: 数据库路径
23+
"""
24+
self.dbpath = dbpath
25+
self._conn = None
26+
27+
28+
def conn(self):
29+
"""
30+
连接到数据库
31+
:return: 数据库连接(失败返回 None)
32+
"""
33+
if not self._conn:
34+
try:
35+
self._conn = sqlite3.connect(
36+
database = self.dbpath
37+
)
38+
except:
39+
log.error("连接数据库 [%s] 失败" % self.dbpath)
40+
return self._conn
41+
42+
43+
def close(self):
44+
"""
45+
断开数据库连接
46+
:return: 是否断开成功
47+
"""
48+
is_ok = False
49+
if self._conn:
50+
try:
51+
self._conn.close()
52+
self._conn = None
53+
is_ok = True
54+
except:
55+
log.error("断开数据库 [%s] 失败" % self.dbpath)
56+
return is_ok
57+
58+
59+
def reconn(self):
60+
"""
61+
重连数据库
62+
:return: 数据库连接(失败返回 None)
63+
"""
64+
self.close()
65+
return self.conn()
66+
67+
68+
def commit(self):
69+
"""
70+
提交事务
71+
:return: 是否提交成功
72+
"""
73+
is_ok = False
74+
if self._conn:
75+
try:
76+
self._conn.commit()
77+
is_ok = True
78+
except:
79+
log.error("提交事务到数据库 [%s] 失败" % self.dbpath)
80+
return is_ok
81+
82+
83+
def init(self, sql_script):
84+
"""
85+
初始化数据库
86+
:param sql_script: 建库脚本(注意控制好数据表是否存在)
87+
:return: 是否初始化成功
88+
"""
89+
if self.conn():
90+
try:
91+
data = ""
92+
with open(sql_script, "r") as file:
93+
data = file.read()
94+
95+
if data:
96+
cursor = self._conn.cursor()
97+
sqls = data.split(";")
98+
for sql in sqls:
99+
sql = sql.strip()
100+
if sql:
101+
cursor.execute(sql)
102+
cursor.close()
103+
except:
104+
log.error("初始化数据库 [%s] 失败" % self.dbpath)
105+
self.close()
106+

0 commit comments

Comments
 (0)