您的位置:首页 > 运维架构

监控网页浏览内容

2018-03-02 12:30 197 查看
思路:
不断chrom的历史记录,得到浏览内容,如果不在限定范围,则发送截图和url给服务器
服务器端#!/usr/bin/env python
# coding:utf-8
import socket

import time

def handle_request(client):
buf = client.recv(1024)
print(buf)

def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('0.0.0.0', 1234))
sock.listen(5)

while True:
connection, address = sock.accept()
handle_request(connection)
connection.close()

if __name__ == '__main__':
main()
客户端import os,shutil
import socket
import sqlite3
import time

from PIL import ImageGrab

class history_query():

def __init__(self):
self.url_set = set()
self.key = '####'
self.hostname = socket.gethostname()
# 根据主机名称获取当前IP
self.host = socket.gethostbyname(socket.gethostname())

#访问浏览记录,并进行分析
def query(self):
data_path = r'C:\Users\favomj\AppData\Local\Google\Chrome\User Data\Default'
files = os.listdir(data_path)
history_db = os.path.join(data_path, 'history')
dstfile = 'D:/history'
shutil.copyfile(history_db, dstfile)
# querying the db
c = sqlite3.connect(dstfile)

cursor = c.cursor()
select_statement = "SELECT urls.url,urls.visit_count FROM urls, visits WHERE urls.id = visits.url;"

cursor.execute(select_statement)
#col_name_list = [tuple[0] for tuple in cursor.description] 字段

results = cursor.fetchall() # tuple

flag = 0
for url, count in results:
if self.key not in url and url not in self.url_set:
self.url_set.add(url)
im = self.ScressGrap()
# im.show()
self.send_msg_to_server(url)
if flag == 0 :
self.send_msg_to_server('200')

#当前屏幕截图
def ScressGrap(self):
im = ImageGrab.grab()
return im

#发送给服务器
def send_msg_to_server(self,msg):
#加上本机ip 以进行区分
host = ""
port = 1234
buf_size = 1024
addr = (host, port)
if len(msg) > 0:
tcp_client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_client_sock.connect(addr)
info = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) + ' from ' + socket.gethostname() + ':'
tcp_client_sock.sendall((info + msg).encode())
tcp_client_sock.close()

if __name__ == '__main__':
hq = history_query()
while True:
hq.query()
time.sleep(3)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: