HTTPS la terreur de votre site web
January 10 2018
Bonjour à toutes et à tous,
On commence l'année, en douceur, avec un petit programme qui pourrait s'avérer vous être utile si vous avez un site internet
N'avez-vous pas remarqué, que depuis quelques mois, certains sites que vous visitez ont perdu de leur contenu ?
À vrai dire, cela n'est pas lié au contenu lui-même de vos sites favoris, mais aux politiques des navigateurs, qui mettent en garde les utilisateurs lorsqu'ils saisissent des données dans des formulaires non sécurisés, ou lorsque des ressources non sécurisées sont appelées depuis des contextes sécurisés.
Nos sites favoris, ou tout du moins, les plus gros d'entre eux ont été mis à jour et ont vu leur protocole http évoluer vers du https.
Nul doute, toutefois, que cette évolution s'est faite dans la douleur pour beaucoup de sites de plus petite taille et notamment les blogs personnels qui ont dû se mettre au goût du jour pour éviter des messages inoportuns à leurs visiteurs, les mettant en garde lors de leur saisie d'identifiants.
Il y a des sites pour lesquels le passage "général" s'est finalement fait dans la douceur, c'est le cas si votre site a des liens absolus basés sur une url en configuration ou si vos liens sont relatifs ; si ce n'est pas le cas, il y a un peu plus de travail, malheureusement, ... (ce site a une base url et des liens relatifs, ouf ).
Vous, vous doutez bien qu'il y a toutefois bien un souci dans tout cela.
En effet, la mise à jour "générale", concerne les ressources que l'on va pouvoir visualiser rapidement.
Rien ne marchera correctement si vos fichiers javascript et css sont bloqués par le navigateur, le fix est donc très visuel et n'est qu'une question de temps.
Se pourraît-il que l'iceberg se cache sous la surface ?
À n'en pas douter !
Il se pourrait que du contenu soit masqué de l'affichage sans que cela ne se voit, ou que des encarts restent vides, ou qu'il s'agisse de contenu dans des pages un peu distantes de la page principale, comme des news ...
Rassurez-vous, vos liens divers, vos images, vos vidéos youtube ou vous présentez votre passion, etc, ne sont pas perdus pour autant !
En une simple commande, vous pouvez lister tout ce contenu qui a pourtant disparu de votre site
Pour lancer cette application (notamment développée en scala/ akka), il vout suffit de java 8 sur votre pc et de lancer le programme avec une ligne telle que :
java -jar crawler-assembly-1.0.0.jar --url "https://votresite.fr"
Cet applicatif va récupérer la totalité des pages de votre site et lister les erreurs de liens morts ou inaccessibles. Pour la gestion des blocages https, pensez à mettre le lien de départ en https. Le programme va générer une page html de rapport dans le répertoire courant. Les sous-domaines ne sont pas visités, les liens externes, non plus.
Je prendrais peut-être le temps de mettre les sources sur github.
L'applicatif a de nombreuses options :
- sélectionner le nombre de pages max à crawler, idéal lors de la première utilisation (--max-pages 1)
- re-tenter le crawl d'une page en cas d'échec (--max-retries 3)
- proposer un mode pour afficher uniquement les erreurs, pratique si votre site a beaucoup de pages (--report-mode "errors-only")
- spécifer le user-agent (--user-agent "Crawler 1.0.0"
- limiter le nombre d'appel par seconde, pour éviter de spammer/ se faire bloquer (--scrap-interval-timeout "500 milliseconds")
- filtrer les résultats via un fichier contenant les URLs à ne pas afficher ou des regex (--exclude-results-file "myFile.txt")
- filtrer les URLs à ne pas crawler via un fichier contenant des regex (--black-list-file "blackList.txt")
- spécifer les balises et attributs à parser et crawler (--scraped-tags "a=href,img=src,link=css,script=src,object=data")
et d'autres...
Pour les visualiser :
java -jar crawler-assembly-1.0.0.jar --help
Par exemple :
Crawler 5 pages et conserver tous les autres paramètres, par défaut.
java -jar crawler-assembly-1.0.0.jar --url "https://mathieuprevel.fr" --max-pages 5
Crawler 500 pages max, n'afficher que les erreurs dans un fichier "crawler_report.html", en attendant 200 millisecondes entre chaque requête et spécifier le user-agent.
java -jar crawler-assembly-1.0.0.jar --url "https://mathieuprevel.fr" --max-pages 500 --report-mode "errors-only" --out "crawler_report.html" --scrap-interval-timeout "200 millis" --user-agent "Crawler 1.0.0"
Pour le jar, c'est ici
Il est un peu lourd car il embarque toutes ses dépendances, afin d'en faciliter le lancement.
Have fun !
Hiryu
Bloavezh mat!
January 1 2018
Je vous souhaite à toutes et à tous et ms meilleurs voeux pour cette nouvelle année qui commence à grands pas !
En plus de la santé et de la prospérité, puisse cette année vous être pleine d'aventures et l'opportunité de concrétiser vos rêves.
Tout vient à temps à qui sait attendre, paraît-il.
Attendre est toutefois d'un enni mortel !
Impatients, il faut, d'avantage et avant tout, la volonté pour mener ses rêves à bien ; c'est cette volonté au quotidien que je vous souhaite aujourd'hui.
Ma résolution, cette année, tout du moins concernant ce site, est de publier plus souvent, comme on me le demande régulièrement.
En fait, ce site s'est plus ou moins retrouvé à l'abandon, ayant d'autres activités que j'ai privilégiées.
Mon année a été riche d'aventures personnelles et professionnelles.
Impossible de tout faire, malheureusement, il faut prioriser et mener ses projets les uns après les autres.
Souvent, j'ai bougé cette année, en France comme à l'étranger, j'ai repris diverses activités comme le vélo, je me suis investi dans mon jardin, mon verger, mais aussi en milieu associatif, ou encore dans divers projets de développement, seul ou avec des amis, ...
Sur le plan professionnel, j'ai aussi beaucoup évolué ; peut-être ferais-je un post sur ce point, ou pas :-)
Bloavezh 2018 mat yec'hed ha properite, joa ha karantez, hag an baradoz bemdez. Gwellañ hetoù !
Hiryu
Des fonctions en couleur
November 22 2017
Salut à tous,
Quel regard portez-vous sur les maths ? Pensez-vous quelles puissent être artistiques ? C'est la question à laquelle vous répondrez peut-être en faisant ce petit jeu/ quiz.
Je vous propose de visualiser, en 2-3 minutes, des fonctions (24 au total) très simples et leur expression, parfois très surprenante, en couleur. Pour cela, la fonction est appliquée à un canvas et prend 2 paramètres, x et y, les 2 axes du canvas. La couleur obtenue est un pixel tel que pixel(x,y) = f(x,y).
Amusez-vous bien
Hiryu
À la recherche des objets perdus
September 5 2017
Un petit poste programmation, ça faisait longtemps et aussi surprenant que ce le soit, c'est mon premier post Scala (alors que je vous bassine avec depuis des années )
À force de fréquenter des rôlistes, collectionneurs, bricoleurs, brocanteurs, ... en tout genre, je me suis dit que je pourrais faire un petit quelque chose à leur attention.
Je propose donc un petit scrapper pour leboncoin.fr bien que je suis plutôt adepte d'un concurrent en ce qui me concerne.
Vous trouverez une version assez simple (le challenge était de tenir en moins de 50 lignes) qui va vérifier toutes les 10 minutes si votre recherche matche des objets, si oui, elle approfondit la recherche en recherchant des mots-clés supplémentaires ou en vérifiant le vendeur (et oui, j'ai acheté une grosse majorité de mes mangas au même vendeur... c'est quand même dommage de ne pas pouvoir chercher par vendeur sur leboncoin :s )
Ensuite, vous customisez votre fonction de notification pour être prévenu de la mise en vente.
Pour les non-adeptes des langages fonctionnels, le code risque de vous faire bizarre, mais vous en noterez la concision (ça pourrait encore être plus court).
Quelques petits coups de pouces avant de vous lancer dans le code.
myHtmlDoc >> element("a") est pour rechercher dans le document html l'élément "a".
myHtmlDoc >?> element("a") est pour rechercher dans le document html un élément optionel "a"
Pour le scheduling (uniquement), j'utilise le scheduler des acteurs akka. D'où la présence d'un ActorSystem.
Enfin, en Scala, la dernière expression d'un bloc (fonction, condition, ...) est la valeur de retour du bloc. Autrement dit, le mot clé "return" est implicite.
Pour le code c'est ici : scrapper leboncoin.fr
Hiryu
Jardin
July 31 2017
Hello à tous,
On me demande régulièrement où en sont mes fruitiers, j'en profite donc pour faire un petit article rapide. :)
Comme vous le savez certainement, une des premières choses faite lorsque j'ai acheté ma maison est de planter un verger, soit une soixante d'arbres (rien que ça !) de toute sortes. Je remercie au passage Mickaël qui m'a aidé à en planter une partie. Pommiers, poiriers, pruniers, abricotiers, pêchers, cerisiers, figuiers, vignes, amandiers, noisetiers, cognassiers, grenadiers (et pourquoi pas ! :p), ...
À ceux-là s'ajoutent des arbres déjà présents où buissons voire lianes aussi plantés, tels que mûriers, framboisiers, fraisiers, châtaigniers, noisetiers, fraises, kiwis, ...
L'avantage d'un verger c'est que ça ne demande que très peu d'entretien (ce qui tombe plutôt bien compte tenu de toutes mes activités à côté) et (après quelques années), ça apporte quantités de fruits. Bien au-delà de ce qui est mangeable, pour être sincère ; d'où l'intérêt de prendre des fruitiers de différents genres et variétés pour échelonner les récoltes tout au long de l'année.
J'ai aussi quelques plantations annuelles pour le jardin avec les courants salades et moutardes, radis, poireaux, courges, courgettes, tomates, ... et une tentative cette année : des melons. Pour le moment, ça se passe plutôt bien
J'ai eu mes premiers abricots l'an passé.
Pommes, cerises, figues, kiwis (~100kg l'an passé, liane de peut-être 30 mètres, j'en ai littéralement donné des caisses) et châtaignes sont à profusion.
En ce moment, il y a, pommes, mûres, fraises et figues.
À l'exception des prunus qui sont sensibles à la cloque du pêcher :s au nord de la Loire et sont traités en "bio", les autres arbres ne sont pas traités.
Et pour le coup d’œil, quelques figues cueillies tout à l'heureMiam !
Hiryu
RSS