необходимость:
(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. Напоследок желаю всем быть цепкими, как травка на обложке, и поскорее достичь пика жизни