这是干什么的?
该工具是爬取ThinkPHP中开启调试模式后的日志文件,具体详情请访问:https://phpinfo.me/2016/09/09/1351.html
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import
requests
,
time
,
os
# 检查日志文件是否存在
def
check
(
domain
)
:
for
date
in
range
(
0
,
365
)
:
ext
=
time
.
strftime
(
"%Y_%m_%d"
,
time
.
localtime
(
time
.
time
(
)
-
(
86400
*
date
)
)
)
url
=
"%s/Runtime/Logs/%s.log"
%
(
domain
,
ext
[
2
:
]
)
response
=
requests
.
get
(
url
)
if
response
.
status_code
==
200
:
yield
{
'status'
:
True
,
'ext'
:
ext
,
'data'
:
response
.
text
}
else
:
yield
{
'status'
:
False
,
'ext'
:
ext
}
# 保持日志内容到指定目录下
def
save
(
domain
,
ext
,
data
)
:
domainPath
=
'./%s'
%
domain
fileName
=
'./%s/%s.log'
%
(
domain
,
ext
)
if
os.path
.
exists
(
domainPath
)
is
False
:
os
.
mkdir
(
domainPath
)
file
=
open
(
fileName
,
'a+'
,
encoding
=
'gb2312'
)
file
.
write
(
data
)
file
.
close
(
)
# 获取文件夹名称
def
getDName
(
domain
)
:
isHttps
=
domain
.
find
(
'https://'
)
!=
-
1
haveGan
=
domain
[
-
1
]
==
'/'
if
isHttps
:
domain
=
domain
[
8
:
]
else
:
domain
=
domain
[
7
:
]
if
haveGan
:
domain
=
domain
[
:
-
1
]
return
domain
# 开始运行
def
run
(
domain
)
:
for
result
in
check
(
domain
)
:
if
result
[
'status'
]
==
True
:
save
(
getDName
(
domain
)
,
result
[
'ext'
]
,
result
[
'data'
]
)
print
(
result
[
'status'
]
,
result
[
'ext'
]
)
run
(
'http://www.onethink.cn/'
)
|
其它
可能一些小细节没做到位,大概就这样了撒