我正在尝试在谷歌上进行一些搜索(每 5 分钟左右循环一次)。
当它受到攻击时,我希望它将结果推送到系统日志服务器。我对 python 很陌生,所以请原谅我的无知,我已经搜索了很长时间,但找不到我的问题的答案。
我打算添加多个查询来查找不同的结果,具体取决于 logevent 的查询结果的不同。
WARN "possible hit"
CRITICAL "definatly a hit"
etc
我希望输出例如:
日志类型、url、日期/时间
下面是我迄今为止一直在使用的代码。我可以搜索并记录到文件,但不是我想要的方式。我只获得时间和偶数类型的格式,我没有在日志中获得查询结果。我不知道如何登录到系统日志服务器。
#!/usr/bin/python
import urllib
import simplejson, logging
query = urllib.urlencode({'q' : 'SEARCHTERMHERE'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' \ % (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
logging.basicConfig(format='%(asctime)s %(message)s', filename='hits.log')
logging.warning ('Likley hit')
print i['url']
#!/usr/bin/python
import urllib
import simplejson
import logging
from logging.handlers import SysLogHandler
query = urllib.urlencode({'q' : 'SEARCHTERMHERE'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' \
% (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
print i['url']
logger = logging.getLogger()
logger.addHandler(SysLogHandler(address=('192.168.0.2', 514), facility=LOG_USER, socktype=socket.SOCK_DGRAM)
logger.addHandler(logging.FileHandler("hits.log"))
logging.warn("likley Hit: " + i['url'])
我得到:
文件“gog.py”,第 18 行
logger.addHandler(logging.FileHandler("hits.log"))
^
语法错误:语法无效
您可以配置日志模块以输出到syslog,请参见http://docs.python.org/library/logging.handlers.html#sysloghandler http://docs.python.org/library/logging.handlers.html#sysloghandler
简单的例子:
from logging.handlers import SysLogHandler
import logging
logger = logging.getLogger()
logger.addHandler(SysLogHandler('/dev/log'))
logger.addHandler(logging.FileHandler("filename.log"))
logging.warn("Hello world")
以上使用 Unix 域套接字记录到本地系统日志。您还可以指定使用 UDP 记录到系统日志的主机名。请参阅文档以获取更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)