Aller au contenu

Faire des requêtes Internet en tâche de fond via une application Android ?


Clickart

Recommended Posts

Bonjour,

je ne suis pas développeur et j'espère que mon sujet à sa place dans ce forum.
Je suis en train de rédiger un cahier des charges afin de réaliser un projet d'application Android que je souhaite mettre à disposition des utilisateurs sur le Play Store.
J'ai donc besoin que cette application soit autorisé et validé par l'équipe de modération du Play Store, mais également qu'elle puisse fonctionner sur l'immense majorité des smartphones sous Android.
Voici ce que je souhaite créer comme application :

L'utilisateur, après avoir téléchargé l'app sur son smartphone, rentre l'URL de son site Internet (l'app cible donc les webmasters) dans l'application et l'application se charge de parcourir automatiquement (de crawler comme peut le faire Google BOT par exemple) l'intégralité de son site Internet pour in fine lui indiquer si il existe des liens cassés sur son site (des liens qui renvoient vers des sites qui n'existent plus, ou bien des liens cassés comme lemonfe.fr plutôt que lemonde.fr

J'ai donc besoin que l'application, à partir du smartphone où elle est installée (et avec son IP 4G ou WiFi) parcours un site qui peut faire par exemple 10 000 pages.
Je ne souhaite pas que l'utilisateur de l'application ai l'obligation de laisser l'application ouverte sur son écran pour que le crawl est lieu. Je souhaite donc que ce crawl se fasse du moment que l'utilisateur est connecté à Internet et que son smartphone est allumé bien sûr. Donc faire cela en tâche de fond.

Est-ce que cela est techniquement possible ?
Mais surtout est-ce que Google autorise ce type de comportement pour une application qui est sur son Play Store ?

Merci pour votre aide :)
Passez une bonne après midi

Lien vers le commentaire
Partager sur d’autres sites

Il y a 12 heures, Clickart a dit :

J'ai donc besoin que l'application, à partir du smartphone où elle est installée (et avec son IP 4G ou WiFi) parcours un site qui peut faire par exemple 10 000 pages.

Pour ce genre de besoin, j'aurais tendance à préconiser plutôt d'utiliser l'appli Smartphone juste comme interface de configuration/planification et récupération des résultats.

Pour la partie "crawler" ce serait beaucoup plus efficace de la faire exécuter par un site web auquel le smartphone se connecte via une API REST, avec authentification, qui traiterait le parcours du site en mode batch et rendrait les résultat au smartphone en différé.

Autre avantage serait de pouvoir mutualiser les requêtes dans la mesure ou plusieurs utilisateurs demandent de parcourir le même site à peu de temps d'intervalle.

(à moins que des contraintes que je ne maîtrise pas invalident cette approche bien entendu)

  • Like 1
  • Thanks 1
Lien vers le commentaire
Partager sur d’autres sites

Hello CoolRaoul ^^

C'est vrai que tout centraliser sur un seul serveur est plus courant. Mais la j'ai besoin de faire le crawl à partir des IP des utilisateurs et pas uniquement avec une ou quelques IP fournies par un serveur.

Mais il est vrai que la data consommé sur un forfait 4G à une importance pour l'user. Et il en est de même pour la consommation de sa batterie.

Mais je voudrais voir si vous connaissez des appli qui fait quand même un certains nombre de requête en background de l'appli tout en étant acceptée sur le Play Store.

Par exemple, l'application Sensorly est une appli communautaire qui "pompe" un peu de data de chaque user de son app pour mesurer le débit descendant et ascendant en fonction de la géolocalisation. Après, je ne pense pas qu'elle fasse 100 threads /jour sur chaque user. Mais le principe est le même pour ma futur appli (à priori) sauf que j'aurais besoin de faire beaucoup plus de requêtes en tâche de fond.

De plus, je suis tombé sur ce site : dontkillmyapp.com qui indique (en anglais malheureusement) que certains constructeurs de smartphones limite la consommation des applications en tâches de fond. Je n'ai pas encore fait beaucoup de recherches sur ce sujet par contre.

Modifié par Clickart
Lien vers le commentaire
Partager sur d’autres sites

il y a 7 minutes, Clickart a dit :

Mais la j'ai besoin de faire le crawl à partir des IP des utilisateurs et pas uniquement avec une ou quelques IP fournies par un serveur.

Désolé de ne toujours pas comprendre l'architecture choisie: vu qu'il s'agit de vérifier, je cite, "si il existe des liens cassés sur son site" l'IP source ne devrait à priori ne pas impacter le résultat.

A moins que certains des sites vers lesquels pointent les liens du site à tester fassent du filtrage par IP. Mais dans ce cas les résultats risquent de ne pas être reproductibles d'une passe à l'autre, que ce soit en réseau mobile (l'IP affectée au smartphone étant susceptible de changer) ou en changeant de réseau WiFI

 

il y a 9 minutes, Clickart a dit :

Mais je voudrais voir si vous connaissez des appli qui fait quand même un certains nombre de requête en background de l'appli tout en étant acceptée sur le Play Store.

J'ai rien à l'esprit dans l'immédiat non (je souhaitais juste réagir au cahier des charges que je trouvais un peu étrange). Je suggère d'attendre si d'autres membres du forum ont des idées.

Lien vers le commentaire
Partager sur d’autres sites

Citation

Désolé de ne toujours pas comprendre l'architecture choisie: vu qu'il s'agit de vérifier, je cite, "si il existe des liens cassés sur son site" l'IP source ne devrait à priori ne pas impacter le résultat.

A moins que certains des sites vers lesquels pointent les liens du site à tester fassent du filtrage par IP. Mais dans ce cas les résultats risquent de ne pas être reproductibles d'une passe à l'autre, que ce soit en réseau mobile (l'IP affectée au smartphone étant susceptible de changer) ou en changeant de réseau WiFI

Le fait d'utiliser une IP unique pour crawler différentes pages web de différents domaine engendre souvent des problèmes. Par exemple, un hébergeur peut mettre en place une protection anti DDOS (alors qu'on crawle 1 page toutes les 5 ou 15 secondes, ce n'est pas en soit une attaque DDOS). Certain utilisateurs peuvent vouloir crawler leur site se trouvant chez un hébergeur du type Shopify ou Wordpress ou Blogger et eux aussi utilisent des protections. Si je crawle tous les sites de tous les users, ça va beaucoup trop sollicité mon IP serveur.

Par exemple si j'ai 50 000 utilisateurs et que chacun en moyenne demande le crawle de 1.5 site et que chaque site à en moyenne 8000 pages, je vais devoir (étalé dans le temps certes) crawler 600 millions de pages avec la même IP. Forcément, par un filtre ou un autre, l'IP du serveur sera blacklistée.

C'est pourquoi je souhaite que les users utilisent leur propre IP qu'elle soit en WiFi (IP résidentielle) ou via la 4G (IP mobile).

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...