
RSS signifie Really Simple Syndication. C’est un format de document que les lecteurs de flux peuvent ouvrir. Le RSS est écrit en XML. Le XML est du texte structuré.
Utilisez les lignes que vous avez déjà vérifiées
Un Actor est un programme hébergé de collecte de données. Une Task est un préréglage d’entrée enregistré. L’Actor Indeed Jobs Scraper collecte les lignes sources. Vous écrivez le flux RSS à partir des lignes que vous avez déjà vérifiées. L’Actor n’écrit pas ce flux à votre place.
Indeed est le site d’emploi d’où viennent ces lignes. La version publique 1.2.14 peut renvoyer les champs de ligne que cette méthode utilise. Ces champs sont jobId, jobUrl, title, companyName, descriptionText, descriptionStatus, postedAt, postedAtRaw et scrapedAt. jobUrl est l’adresse web de l’offre. Une adresse web est aussi appelée une URL.
Un contrôle de deux lignes a accepté les identifiants sources, les URL sources et le texte complet de la description. Ce contrôle avait une limite de deux lignes. Un échantillon limité n’est pas chaque offre du site. Cette méthode ne répare pas une collecte Upwork bloquée. Elle ne crée pas un flux Indeed natif.
La Task publique actuelle Indeed Jobs Scraper a été vérifiée à 2026-10-13T05:55:51.545104+00:00. Son entrée enregistrée est :
{"country": "us", "searchTerm": "software engineer", "maxItems": 100, "postedWithinDays": "7", "sortBy": "date", "maxPagesPerSearch": 2, "saveOnlyUniqueItems": true}Utilisez cette entrée seulement comme point de départ. Remplacez le terme de recherche de l’échantillon lorsque vous collectez des lignes. Remplacez aussi le pays ou le lieu. maxItems 100 limite la requête. Ce n’est pas un décompte des offres trouvées. maxPagesPerSearch 2 limite les pages pour une recherche. Ce n’est pas une couverture complète du site. saveOnlyUniqueItems true demande à la collecte de conserver les éléments uniques. Vous vérifiez encore les identifiants avant d’écrire le flux. Une Task publique ne signifie pas que le travail sur le flux est automatique.
La collecte, la comparaison des lignes et la revue d’identité viennent avant cette méthode. Ici, l’identité signifie l’identifiant source stable d’une annonce. Commencez seulement avec un ensemble limité de lignes vérifiées. Excluez une ligne lorsque son identifiant est absent ou encore en cours de revue.
Construisez le flux en huit étapes
- Définissez l’échantillon et l’objectif.
L’objectif est de donner à un lecteur de flux un document valide d’annonces vérifiées. Commencez avec des lignes utiles qui ont des identifiants connus. Conservez avec elles un reçu de couverture. Un reçu de couverture est une courte note des lignes que le flux inclut. Excluez les identifiants absents. Excluez les identifiants encore en cours de revue.
- Choisissez la règle d’identité de l’élément.
Pour une annonce Indeed, la clé est le texte indeed: immédiatement suivi de jobId. Un GUID est la chaîne d’identité de l’élément. GUID signifie globally unique identifier. Le RSS le stocke dans l’élément guid. Réglez isPermaLink sur false. false signifie que le GUID n’est pas une adresse web. Conservez le même GUID lorsque le titre change. Conservez le même GUID lorsque la description change. Selon cette règle, un nouvel identifiant source crée un nouvel élément de flux. Un nouvel identifiant source ne prouve pas un nouveau poste chez l’employeur. Utilisez une méthode distincte lorsque vous devez apparier le même poste.
- Créez un flux RSS 2.0 avec un seul canal.
L’élément racine est rss, et sa version est 2.0. Placez un seul channel à l’intérieur. Un canal est le groupe principal qui contient le titre du flux et ses éléments. Un élément est une annonce d’emploi dans le flux. La spécification RSS exige un titre, un lien et une description de canal. Donnez les trois. Ajoutez un élément pour chaque ligne utile. Donnez à cet élément un titre. Donnez-lui l’adresse web d’origine de l’offre comme lien. Donnez-lui une courte description. La même spécification exige un titre ou une description pour chaque élément. Cette méthode donne les deux. Gardez le lien du canal accessible pour votre lecteur.
- Écrivez le texte avec un sérialiseur XML.
Cette étape d’écriture s’appelle la sérialisation. Ne collez pas à la main le texte brut de l’offre dans le fichier. Une esperluette ou un signe inférieur peut casser le XML. Les règles de syntaxe XML montrent comment ces caractères doivent être écrits. Un sérialiseur est un programme qui écrit le texte sous une forme XML sûre. Il conserve les lettres Unicode, comme é. Il conserve le texte de requête dans une adresse web. Une chaîne de requête est le texte après un point d’interrogation dans une adresse web. Du texte XML sûr n’est pas du HTML sûr. Le HTML est le format utilisé pour dessiner une page web. Un sérialiseur ne rend pas sûr à afficher le HTML collé. Utilisez un résumé en texte brut dans l’élément. Conservez le texte complet de l’offre sur la page d’origine de l’offre. Utilisez descriptionText seulement lorsque votre contrôle de ligne a accepté descriptionStatus. companyName peut rester dans la ligne source. L’élément du flux ne l’exige pas.
- Ajoutez pubDate seulement pour une heure de publication confirmée.
pubDate est le nom RSS d’une date de publication d’élément. postedAt est facultatif, et il est obtenu par analyse du texte source. Une valeur postedAt renseignée ne prouve pas une heure de publication exacte. Examinez postedAtRaw et les preuves de la source. Ajoutez pubDate seulement lorsque l’heure de publication et le fuseau horaire sont tous les deux confirmés. Si l’heure est absente, relative ou incertaine, elle reste indisponible. Une heure relative, par exemple une formule qui indique un nombre de jours auparavant, n’est pas exacte. La chaîne de date qui suit fait partie de l’échantillon fictif d’origine. Le style de date RSS ressemble à Mon, 12 Oct 2026 09:30:00 GMT. GMT est le nom de zone que ce style utilise pour cette heure UTC. UTC signifie Coordinated Universal Time. Lorsque l’heure de publication est inconnue, omettez pubDate. Vous pouvez indiquer l’heure d’observation dans le résumé de l’élément ou dans le reçu de couverture. scrapedAt est l’heure d’observation. N’utilisez pas scrapedAt comme heure de publication. lastBuildDate signifie l’heure à laquelle le document de flux a été construit. Ajoutez lastBuildDate seulement lorsque vous suivez cette heure de construction séparément. N’utilisez pas l’heure de construction pour remplir une date d’offre inconnue.
- Rapprochez les lignes sources et les éléments du flux.
Rapprocher signifie comparer les deux listes et rendre compte de chaque ligne. Signalez les identifiants connus que vous avez utilisés. Signalez les lignes que vous avez exclues. Signalez les lignes encore non résolues. Signalez les clés en double. Signalez le nombre d’éléments sans date de publication. Un flux construit à partir d’un jeu de données limité reste limité. Un élément absent dans un échantillon ultérieur ne prouve pas que l’employeur a retiré l’offre. La manière dont un lecteur supprime ou met à jour les éléments est un choix distinct.
- Analysez le flux et vérifiez-le en trois couches.
Analyser signifie lire le document et confirmer sa structure. D’abord, analysez le XML. Confirmez les éléments requis. Confirmez le nombre d’éléments. Confirmez que chaque GUID est unique. Confirmez que chaque GUID reste le même lorsque le texte change. Confirmez le lien de chaque élément. Confirmez que le texte analysé correspond au texte source. Confirmez que chaque date conserve son sens d’origine. Une analyse réussie montre que la structure XML est saine. Elle ne prouve pas chaque règle RSS. Elle ne prouve pas que chaque lecteur acceptera le flux. Ensuite, vérifiez les règles RSS sur lesquelles vous vous appuyez. Enfin, testez le lecteur que vous prévoyez d’utiliser. Importer signifie ouvrir le flux dans ce lecteur. Importez un petit flux fictif avant d’ajouter des lignes réelles. Gardez ce test de lecteur distinct du test du document.
- Enregistrez le flux et les notes qui l’expliquent.
Conservez ensemble la note de couverture, la note de date et le reçu source. Un reçu source enregistre les lignes vérifiées que vous avez utilisées. Hébergez le fichier seulement lorsque votre lecteur a besoin d’un accès. Héberger signifie placer le fichier là où le lecteur peut le récupérer. Cet article ne publie pas de flux en direct. Il ne révèle pas de clé d’accès privée. Il ne programme pas d’actualisations. Il n’envoie pas d’alertes. Suivre les offres non vues est une tâche distincte.
Lisez le flux fictif à deux éléments
Le flux de cette section est une fiction originale. Il enseigne les règles. Ce n’est pas un résultat de l’Actor. Ce n’est pas la preuve que seules deux offres existent.
L’échantillon a deux annonces sources. Leurs identifiants sources sont les valeurs textuelles 000101 et 000102. J1 et J2 ne sont que des étiquettes pour ces deux lignes fictives. Les GUID sont indeed:000101 et indeed:000102. J1 a une heure de publication confirmée : le 12 octobre 2026 à 09:30 UTC. J2 a une heure de publication inconnue, donc sa date de publication est indisponible.
| Ligne | Identifiant source | GUID | Lien de l’élément | Date de publication |
|---|---|---|---|---|
| J1 | 000101 | indeed:000101 | https://jobs.example/J1?role=analyst&city=Austin | Mon, 12 Oct 2026 09:30:00 GMT |
| J2 | 000102 | indeed:000102 | https://jobs.example/J2 | Indisponible |
J1 a le titre Café Analyst & SQL. Sa description est Check values < 10 & explain results. J2 a le titre Report Analyst. Sa description est Publication time unavailable. Observed 2026-10-13 05:50 UTC. Cette heure d’observation n’est pas une heure de publication.
Le titre de J1 teste Unicode et une esperluette. La description de J1 teste un signe inférieur et une esperluette. Le lien de J1 teste une chaîne de requête. Le flux stocke ces caractères dans du texte XML sûr.
| Texte source | Texte écrit dans le flux |
|---|---|
| Café Analyst & SQL | Café Analyst & SQL |
| Check values < 10 & explain results. | Check values < 10 & explain results. |
| https://jobs.example/J1?role=analyst&city=Austin | https://jobs.example/J1?role=analyst&city=Austin |
<?xml version='1.0' encoding='utf-8'?>
<rss version="2.0">
<channel>
<title>Fictional checked analyst sample</title>
<link>https://jobs.example/sample</link>
<description>Two checked sample rows; source collection was capped.</description>
<item>
<title>Café Analyst & SQL</title>
<link>https://jobs.example/J1?role=analyst&city=Austin</link>
<description>Check values < 10 & explain results.</description>
<guid isPermaLink="false">indeed:000101</guid>
<pubDate>Mon, 12 Oct 2026 09:30:00 GMT</pubDate>
</item>
<item>
<title>Report Analyst</title>
<link>https://jobs.example/J2</link>
<description>Publication time unavailable. Observed 2026-10-13 05:50 UTC.</description>
<guid isPermaLink="false">indeed:000102</guid>
</item>
</channel>
</rss>J1 correspond au premier élément. Son GUID est indeed:000101, et son pubDate est l’heure UTC confirmée. J2 correspond au deuxième élément. Son GUID est indeed:000102. L’absence de date est le pubDate manquant de J2. La description de J2 indique seulement l’heure d’observation. Ne remplacez pas cette date absente par l’heure à laquelle vous avez construit le document.
Un test de document local a analysé ce XML. Il a trouvé un canal et deux éléments. Il a confirmé le texte de canal requis. Il a confirmé que les deux GUID sont uniques et que isPermaLink vaut false. Après l’analyse, le texte correspondait au titre Unicode, au signe inférieur, aux esperluettes et au lien de requête d’origine. Le test a lu la date de publication de J1. Il a confirmé que J2 n’a pas de pubDate. Il a changé le titre de J1, et le GUID est resté indeed:000101.
Ce sont des contrôles de document sur cet échantillon fictif. L’analyse XML montre une structure saine. Les contrôles du GUID, du lien, du texte et de la date couvrent les règles RSS utilisées ici. Aucun test de lecteur de flux n’a été fait. Aucun test WordPress n’a été fait. Analysez d’abord votre flux fictif. Faites ensuite un petit contrôle de compatibilité dans votre propre lecteur.
Sources et lectures complémentaires
Par Chronometrica · Mis à jour
Retour en haut ↑

