web-dev-qa-db-fra.com

Comment capturer toutes les URL visitées sur la ligne de commande?

J'aime obtenir toutes les URL que je visite dans le navigateur, capturées en direct sur la ligne de commande pour les rediriger vers un autre programme. Comment pourrais-je faire cela?

Le format doit être une seule URL par ligne, rien d’autre, pas de tabulation, pas d’espace, etc.

C'est ce que j'ai eu jusqu'à présent. La suppression d'onglet ne fonctionne pas. J'ai vu un commentaire en réponse à quelqu'un (tout en bas) qui n'a pas eu de problèmes avec le fait de le diriger pour qu'il échappe. Je comprends pas vraiment ça.

Sudo httpry -F -i eth0 -f Host,request-uri | tr -d 't'

De plus, même si cela fonctionne, cela ne fonctionnera pas avec https, n'est-ce pas? Y at-il une autre façon de faire cela qui inclut https? Je suis disposé à utiliser des plugins de navigateur pour Firefox et le chrome s'ils existent. Je veux juste envoyer toutes les URL visitées à un script.

Peut-être que je peux analyser l'historique des navigateurs en direct et le transférer?

3
redanimalwar

La capture du trafic réseau est possible mais compliquée. Il existe de nombreuses applications fonctionnant sur mon ordinateur qui communiquent via HTML et qui rempliraient se connecteraient avec leur API automatisée et ne refléteraient pas ce que I visitait.

Et comme vous le dites correctement, il ne vous montrera pas HTTPS. L'URL est une partie cryptée de la demande.

Je voudrais cibler le navigateur directement. Celles-ci conservent un historique suffisant dans une base de données SQLite3, ce qui simplifie leur interrogation une fois que le package sqlite3 est installé (Sudo apt-get install sqlite3). Vous pouvez simplement lancer:

sqlite3 ~/.mozilla/firefox/*.default/places.sqlite "select url from moz_places order by last_visit_date desc limit 10;"

Et cela affichera les 10 dernières URL visitées.

Chrome a une configuration similaire et peut être interrogé de la même manière:

sqlite3 ~/.config/google-chrome/Default/History "select url from urls order by last_visit_time desc limit 10;"

Cela fonctionne, mais j'ai eu quelques problèmes de verrouillage de base de données avec Chrome. Cela semble beaucoup plus fiable dans Firefox. Le seul moyen de contourner le verrou de base de données que j'ai trouvé était de faire une copie de la base de données. Cela fonctionne même lorsque la base de données principale est verrouillée et ne devrait pas causer de problèmes:

cp ~/.config/google-chrome/Default/History history.tmp
sqlite3 history.tmp "select url from urls order by last_visit_time desc limit 10;"
rm history.tmp

Cette approche pourrait même être recommandée pour Firefox également. FF ne semble pas verrouiller (ou prend des verrous plus courts), mais je ne suis pas sûr de ce qui se passerait si vous le rencontriez au milieu de l'écriture.


Pour transformer ceci en un live, c’est soit quelque chose que vous auriez besoin d’interroger (ce n’est pas une requête SQL, cela pourrait donc être correct) ou bien utiliser quelque chose comme inotifywait pour contrôler la fichier de base de données pour les modifications.

4
Oli