Scraping posts linkedin search

Bonjour, est-ce que certains d’entre-vous ont la solution pour scraper les posts linkedin correspondant à un hashtag ou une recherche de mot particulière ? De manière continue plusieurs fois par jours pour avoir tout le temps les posts récents ?

Hello Jean,

Pour ça j’utilise des recherches SERP directement avec des opérateurs.

Par exemple, si tu voulais identifier les posts Linkedin qui parlent de « besoin de formation » en 2023, tu pourrais lancer la requête suivante →

site:linkedin.com inurl:posts after:2023-01-01 besoin AROUND(5) formation

la partie « keyword AROUND(xyz) keyword » permet de dire que tu veux les deux keywords dans un post Linkedin avec maximum 5 mots d’écarts entre eux. C’est assez puissant.
Le résultat c’est une recherche google qui contient tous les posts qui matchent ces critères

J’ai développé un tool avec une interface qui permet de faire facilement ce type de requête SERP puis de scraper les posts LI, leur auteur, puis les enrichir avec info de contact, technographies, etc. L’outil sera lancer dans les prochaines semaines mais tu peux l’utiliser gratuitement si tu le souhaites en attendant !

1 « J'aime »

Le script ci-dessous utilise les APIs de Piloterr.

Processus :

  1. Extraction de posts Linkedin à partir de Google Search en utilisant le boolean de @ViceCaz.
  2. Collecte des publications sur Linkedin pour récupérer des détails tels que le contenu, la personne concernée, le nombre de commentaires et de likes, etc.
import requests

PILOTERR_API_KEY = 'YOUR-TOKEN-API-REPLACE-ME'
QUERY = 'Formation'

def get_linkedin_post_details(known_url: str):
    api_url = "https://piloterr.com/api/v2/linkedin/post/info"
    headers = {
        "x-api-key": PILOTERR_API_KEY
    }
    params = {
        "query": known_url
    }
    response = requests.get(
        url=api_url,
        headers=headers,
        params=params
    )
    if response.status_code == 200:
        return response.json()
    else:
        return "Error: Unable to fetch data"

def get_linkedin_post_url_from_google(query: str):
    google_api_url = "https://piloterr.com/api/v2/google/search"
    headers = {
        "x-api-key": PILOTERR_API_KEY
    }
    data = {
        "query": query
    }
    response = requests.post(
        url=google_api_url,
        headers=headers,
        json=data
    )

    if response.status_code == 200:
        search_results = response.json()['organic_results']

        # Extract LinkedIn URL from search results
        for result in search_results:
            if 'linkedin.com/posts' in result['link']:
                posts.append(result['link'])
        return "LinkedIn URL not found in search results"
    else:
        return "Error: Unable to perform search"

# Example usage
posts = []
search_query = f"site:linkedin.com inurl:posts after:2023-01-01 besoin AROUND(5) {QUERY}"
linkedin_url = get_linkedin_post_url_from_google(search_query)

print(f"Count of LinkedIn posts found: {len(posts)}. Fetching details...")

parsed_posts = []

for p in posts:
    get_post_details = get_linkedin_post_details(p)
    parsed_posts.append(get_post_details)

print(parsed_posts)

Ce qui donne:

Count of LinkedIn posts found: 9. Fetching details...
[{'id': '7043937317610287104', 'url': 'https://www.linkedin.com/posts/najettefellache_i-strongly-believe-that-employees-know-how-activity-7043937317610287104-0thT', 'text': "I strongly believe that employees’ know-how is the company's most valuable asset.\n\nUnlike onsite workers, remote workers can't just tap on a teammate's shoulder to ask a question\n\nThey need a different way to communicate and acquire knowledge.\n\nThe modern distributed workforce works with asynchronous video: \n\n✨ They record their questions
 in a video\xa0\n✨ Their teammate record their comment in the same video.\n✨ This video is now accessible to others.\n\nImagine all employees doing this ---\n\n-- It’s a great way to capture informal knowledge and build a company video knowledge hub.", 'author'
: {'url': 'https://www.linkedin.com/in/najettefellache', 'full_name': 'Najette Fellache 🔆', 'image_url': 'https://media.licdn.com/dms/image/D4E03AQGvUg-_OXZOtg/profile-displayphoto-shrink_200_200/0/1695157263651?e=2147483647&v=beta&t=Umsm2F-YlywXU3Za83V8QtjvXFjCvoGSmFszmfTzKe4', 'profile_type': 'person'}, 'hashtags': [], 'image_url': 'https://media.licdn.com/dms/image/C5622AQGsOm8ykXqCGg/feedshare-shrink_2048_1536/0/1679405525994?e=2147483647&v=beta&t=mncAP_UKZHrUMmTByr4LeRrtrHujyGUNb3-7SM6tDco', 'like_count': 125, 
'comments_count': 4, 'date_published': '2023-03-21T13:32:06.530Z', 'total_engagement': 129, 'mentioned_profiles': []}, {'id': '7115674512335015936', 'url': 'https://www.linkedin.com/posts/myndatreacy_excel-cheatsheet-pivottables-activity-7115674512335015936-0b-9', 'text': "Excel PivotTable Cheat Sheet\n\nEVERYTHING you need to know to build a PivotTable in one page!\n\nDownload the hi-res PDF and watch the video here:\xa0https://lnkd.in/gdCBkZbk\n\nIncludes:\n\n- How to Insert PivotTables\n- Use the Field List to build them\n- Style Options\n- Design\n- Layout Options\n- Insert Slicers, Calculated Fields & Items\n- PivotTable Options\n- Number Formatting\n- Sorting\n- Summarize Values By\n- Show Values As\n- Show/Hide the Field List\n- Expand/Collapse buttons\n- Field Headers\n\n❓What's your favourite PivotTable tip? Please share them in the comments.\n\n🎁 COMMENT, SHARE & LIKE this post and spread the Excel love.\n\n🔖FOLLOW me for more tips like this:\xa0https://lnkd.in/gSfhwJKk\n\n#Excel\xa0#cheatsheet\xa0#PivotTables\xa0#Ex
celTips", 'author': {'url': 'https://au.linkedin.com/in/myndatreacy', 'full_name': 'Mynda Treacy', 'image_url': 'https://media.licdn.com/dms/image/D5603AQFNxixpQd0E6g/profile-displayphoto-shrink_200_200/0/1690770568996?e=2147483647&v=beta&t=bwHtsvCIdR7tuI0Df7i1HvNxx0H56njKMOmuVBf5E5M', 'profile_type': 'person'}, 'hashtags': ['Excel', 'cheatsheet', 'PivotTables', 'ExcelTips'], 'image_url': 'https://media.licdn.com/dms/image/D5622AQE4ozjsqHvnMw/feedshare-shrink_800/0/1696486887361?e=2147483647&v=beta&t=dinLBhlpK-y1eUgO6BWLduA2xVLT5eVJWmmSjZrhdik', 'like_count': 3, 'comments_count': 124, 'date_published': '2023-10-05T12:30:06.565Z', 'total_engagement': 127, 'mentioned_profiles': []}, {'id': '7111746680894418944', 'url': 'https://www.linkedin.com/posts/stephaniequentin_formation-financementformation-amberieuenbugey-activity-7111746680894418944-_HVj', 'text': '💰Besoin de financement pour une formation ? \n📢 Ne manquez pas notre prochain atelier : "Financer une formation : qui, quoi, comment ?" \n\nVous êtes formateur, salarié, demandeur d\'emploi ... et vous souhaitez connaitre les différentes solutions de financement qui existent pour une\xa0formation\xa0? \n\nVenez participer à notre matinale “Financer une formation : qui, quoi, comment ?" : \n📅 Jeudi 5 Octobre \n⏰ de 8h30 à 12h \n📌L
AB01- Salle de réunion - 46 Rue Gustave Noblemaire, 01500 Ambérieu-en-Bugey \n\nAu programme\xa0:\xa0\n• 8h30- 10h\xa0-\xa0Financer une formation\xa0"qui, quoi, comment" : Rencontres &\xa0échanges avec des acteurs du secteur (OPCO) \n• 10h30 - 12h -\xa0\xa0Atelier de travail\xa0pour réaliser une fiche pratique à destination du grand public \n\nPour pour faciliter l\'organisation, nous vous remercions de vous inscrire : https://lnkd.in/ed7AV2f4 \n\nOrganisé dans le cadre du Transfo’, tiers-lieux apprenants de Lab01 et de Lukea, cette matinale vise à découvrir les solutions de formations locales. \n\nPlus d\'informations sur le Transfo\', les permanences, les ateliers :\nBenedicte PILLOT - Lukéa\nStephanie Quentin - LAB01 - Cowork & innovation\n\n#Formation #FinancementFormation #amberieuenbugey #opco', 'author': {'url': 'https://fr.linkedin.com/in/stephaniequentin', 'full_name': 'Stephanie Quentin', 'image_url': None, 'profile_type': 'person'}, 'hashtags': ['Formation', 'FinancementFormation', 'amberieuenbugey', 'opco'], 'image_url': None, 'like_count': 10, 'comments_count': 3, 'date_published': '2023-09-24T16:22:18.573Z', 'total_engagement': 13, 'mentioned_profiles': []}, {'id': '7047189079108526081', 'url': 'https://www.linkedin.com/posts/ada-asbl_far2023-agriculture-elearning-activity-7047189079108526081-DgLJ', 'text': "La session introductive en e-learning de l’édition 2023 de la formation en finance agricole et rurale (FAR) vient de débuter. L'intérêt suscité par la formation montre le besoin de renforcer les compétences en financement 
dans le secteur agricole en Afrique. \n\n➡ Pour plus d'information : https://lnkd.in/e775_xnJ \n____________________________\n\nThe introductory e-learning session of the 2023 edition of the Agricultural and Rural Finance (FAR) training is underway. The strong 
interest in the training is proof of the need to strengthen financing skills in the African agricultural sector.\n\n➡ Further information: https://lnkd.in/eR5nBVZn \n\n\xa0Massimo Pera, Caroline Morilhat, Thu Hien DAO \n\n____________________________\n\n#FAR2023 #agriculture #elearning #formation #ruraldevelopment #foodsecurity #financingsolutions #financialservices #upskill", 'author': {'url': 'https://lu.linkedin.com/company/ada-asbl', 'full_name': 'ADA asbl', 'image_url': 'https://media.licdn.com/dms/image/C4D0BAQGfTPUhyly0YA/company-logo_100_100/0/1630529220827/ada_asbl_logo?e=2147483647&v=beta&t=Fwk2Ff75g38rFt1BJY61IW4IvNaV2w8PKtCoJNMVUfY', 'profile_type': 'organization'}, 'hashtags': ['FAR2023', 'agriculture', 'elearning', 'formation', 'ruraldevelopment', 'foodsecurity', 'financingsolutions', 'financialservices', 'upskill'], 'image_url': 'https://media.licdn.com/dms/image/D4E22AQG476NxTXTcbg/feedshare-shrink_2048_1536/0/1680180805538?e=2147483647&v=beta&t=MUGV6ZfXZO83vVSRyf0efGvAAOIVj_CWgxbu4_wvXiM', 'like_count': 33, 'comments_count': 2, 'date_published': '2023-03-30T12:53:26.868Z', 'total_engagement': 35, 'mentioned_profiles': []}, {'id': '7015986298498732032', 'url': 'https://www.linkedin.com/posts/caroline-chabas-b01aba53_i-wish-you-all-a-new-year-filled-with-happiness-activity-7015986298498732032-id2L', 'text': 'I wish you all a new year filled with happiness, health, peace and great success in your personal and professionnal projects. \n\nHappy new year!', 'author': {'url': 'https://fr.linkedin.com/in/caroline-chabas-b01aba53', 
'full_name': 'Caroline CHABAS', 'image_url': None, 'profile_type': 'person'}, 'hashtags': [], 'image_url': 'https://media.licdn.com/dms/image/C4E22AQFf3VvCE9Y0ew/feedshare-shrink_2048_1536/0/1672741482836?e=2147483647&v=beta&t=PzWO5TmRKJ666tdCwdTLbCYV_yTiP1j_1mp_shFrCNk', 'like_count': 18, 'comments_count': 2, 'date_published': '2023-01-03T10:24:44.267Z', 'total_engagement': 20, 'mentioned_profiles': []}, {'id': '7093257145244147712', 'url': 'https://fr.linkedin.com/posts/jacky-borreman-19a413173_vous-avez-besoin-de-conseils-en-formation-activity-7093257145244147712-be0C', 'text': 'Vous avez besoin de conseils en formation ?\nJe peux vous aider...\n\nJacky', 'author': {'url': 'https://be.linkedin.com/in/jacky-borreman-19a413173', 'full_name': 'Jacky Borreman', 'image_url': 'https://media.licdn.com/dms/image/D5603AQFGFAwdRGiwzA/profile-displayphoto-shrink_200_200/0/1701960439408?e=2147483647&v=beta&t=VVDBojUWg9bYqILzGATkhFEchqh9TaSfkQt_kscQl4Q', 'profile_type': 'person'}, 'hashtags': [], 'image_url': 'https://media.licdn.com/dms/image/D4D22AQFukQT6KDd9vQ/feedshare-shrink_2048_1536/0/1691164288921?e=2147483647&v=beta&t=JoeAoUgFitz1cpahQenRUzuUdRxPdNMn0LtK7dB20iM', 'like_count': 13, 'comments_count': 0, 'date_published': '2023-08-04T15:51:29.754Z', 'total_engagement': 13, 'mentioned_profiles': []}, {'id': '7037839195805016064', 'url': 'https://fr.linkedin.com/posts/mickaelquesnot_sap-ps-param%C3%A9tragedocx-activity-7037839195805016064-nvYY', 'text': 'Dossier de paramétrage du module #sapPS\n\nVous avez aimé ce document\xa0#sap\xa0ci-dessus ? 
Vous voulez en voir plus ? Vous cherchez une formation\xa0#SAP\xa0? 📌Envoyer votre demande ou suivez moi\xa0MICKAEL QUESNOT\n\n#sap\xa0#sapfico\xa0#sapfi\xa0#fi\xa0#sapco\xa0#sapfinance\xa0#saps4hana\xa0#s4hana\xa0#s4hanafinance\xa0#sapcommunity\xa0#sapjobs\xa0#sapconsultant\xa0#sapconsultants\xa0#sapcareer\xa0#sapcourse\xa0#learnsap\xa0#training\xa0#consulting\xa0#linkedin\xa0#sap\xa0#erp\xa0#consulting\xa0#saps4hana\xa0#saperp\xa0#sapfiori\xa0#consultant\xa0#KPC\xa0#formation\xa0#saptraining\xa0#fiori\xa0#Sapppm\xa0#saplearning\xa0#sapmm\xa0#sapsd\xa0#sapjobs\xa0#sapcommunity\xa0#sapconsultant\xa0#saphiring\xa0#sappp\xa0#saperp\xa0#sapabap\xa0#sapfiori\xa0#sapbasis\xa0#sapconsulting\xa0#sapfi\xa0#sapconsultants\xa0#sapscm\xa0#sapwm\xa0#sappp\xa0#sapqm\xa0#saphcm\xa0#sapewm\xa0#sapbw\xa0#sapanalyticscloud', 'author': {'url': 'https://fr.linkedin.com/in/mickaelquesnot/en', 'full_name': 'MICKAEL QUESNOT', 'image_url': None, 'profile_type': 'person'}, 'hashtags': ['sapPS', 'sap', 'SAP', 'sap', 'sapfico', 'sapfi', 'fi', 'sapco', 'sapfinance', 'saps4hana', 's4hana', 's4hanafinance', 'sapcommunity', 'sapjobs', 'sapconsultant', 'sapconsultants', 'sapcareer', 'sapcourse', 'learnsap', 'training', 'consulting', 'linkedin', 'sap', 'erp', 'consulting', 'saps4hana', 'saperp', 'sapfiori', 'consultant', 'KPC', 'formation', 'saptraining', 'fiori', 'Sapppm', 'saplearning', 'sapmm', 'sapsd', 'sapjobs', 'sapcommunity', 'sapconsultant', 'saphiring', 'sappp', 'saperp', 'sapabap', 'sapfiori', 'sapbasis', 'sapconsulting', 'sapfi', 'sapconsultants', 'sapscm', 'sapwm', 'sappp', 'sapqm', 'saphcm', 'sapewm', 'sapbw', 'sapanalyticscloud'], 'image_url': None, 'like_count': 12, 'comments_count': 1, 'date_published': '2023-03-04T17:40:20.990Z', 'total_engagement': 13, 'mentioned_profiles': []}, {'id': '7048921900286124032', 
'url': 'https://fr.linkedin.com/posts/valentine-dupr%C3%A9-63231a196_forumemploi-forumformation-compiegne-activity-7048921900286124032-yWF5', 'text': '‼️FORUM‼️\n\n🔍\nBesoin d’une formation ou de vous reconvertir professionnellement ? \n\n❓\nValentine et Lauri
ne seront présentes jusqu’à 12h30 au forum de la formation pour répondre à vos questions !\n\n📍\nRendez-vous au Centre de la Victoire à Compiegne \n\n#forumemploi #forumformation #compiegne #oise #groupemab #formations #formation', 'author': {'url': 'https://fr.linkedin.com/in/valentine-dupr%C3%A9-63231a196', 'full_name': 'Valentine Dupré', 'image_url': 'https://media.licdn.com/dms/image/D4E03AQFu3cwXVkK54g/profile-displayphoto-shrink_200_200/0/1694762520270?e=2147483647&v=beta&t=FRyztX1I9wZGgwBzvAivtLBlcjf-Z8Kt3nDou0xaI9g', 'profile_type': 'person'}, 'hashtags': ['forumemploi', 'forumformation', 'compiegne', 'oise', 'groupemab', 'formations', 'formation'], 'image_url': 'https://media.licdn.com/dms/image/D4E22AQF_pbPAGmJvtg/feedshare-shrink_2048_1536/0/1680593943063?e=2147483647&v=beta&t=socy1plUCN5HlKPAMFts62zAbFLpCwf5vp8VCa2SXqw', 'like_count': 44, 'comments_count': 10, 'date_published': '2023-04-04T07:39:03.647Z', 'total_engagement': 54, 'mentioned_profiles': []}, {'id': '7024283858581782528', 'url': 'https://fr.linkedin.com/posts/ecema_recrutement-lecema-saint-etienne-activity-7024283858581782528-3Pp2', 'text': "[ RECRUTEMENT ] \n \n📍 L'ECEMA Saint Etienne recrute un.e Conseiller.ère Formation pour compléter son équipe 🔔\n \nSon rôle ? Développer et mettre en place des dispositifs et des actions de formation. Conseiller et assister les entreprises dans l'organisation, l'élaboration, la mise en œuvre et le financement de leurs dispositifs de formation. Prospecter des entreprises et des financeurs (branches professionnelles, collectivités etc.), commercialiser et promouvoir des formations 🎯\n \nExemples de missions :\n🔹 Accueillir et sélectionner les futurs étudiants\n🔸 Animer les sessions d’admission\n🔹Définir le besoin de formation des étudiants\n🔸 Recenser les besoins des entreprises et proposer des candidatures adaptées (prospection et recrutements)\n🔹 Participer aux actions commerciales de promotion des formations de l’établissement (salons étudiants ; partenariats entreprises)\n🔸 Accompagner les entreprises dans la concrétisation d’une action de formation (financement ; conditions OPCO…) et suivre les dossiers de prise en charge financière\n🔹 Veiller à récupérer les éléments constitutifs d’un dossier étudiants \n🔸 Procéder à la gestion administrative des contrats et conventions de formation et renseigner les fichiers de prospects, dossiers d'inscription, ...\n \nVous avez un Bac+2 ou Bac+3 dans les secteurs de la négociation et la relation client, de la formation ou bien encore des ressources humaines ? Vous avez une expérience professionnelle 
au sein d’organismes de formation, d’OPCO, d’un service commercial ou d’un service recrutement (intérim) ? Ce poste est fait pour vous ! \n \n👉 Vous avez le sens des responsabilités, de l'organisation et de l'observation, vous avez l'esprit d'équipe et une bonne qualité relationnelle ? Rejoignez l'équipe de l'ECEMA Saint Etienne pour un contrat à durée déterminée (de début mars à fin juillet) ! 🔥\n \nPour postuler, c'est juste ici 👇\[email protected]", 'author': {'url': 'https://fr.linkedin.com/school/ecema/', 'full_name': 'ECEMA', 'image_url': 'https://media.licdn.com/dms/image/D560BAQGryCe70IxrtQ/company-logo_100_100/0/1701956192201/ecema_logo?e=2147483647&v=beta&t=SRP5iRocjoP8ZbRt465p1E8-Q_ELIZrpNJJSzeHcXKM', 'profile_type': 'organization'}, 'hashtags': [], 'image_url': 'https://media.licdn.com/dms/image/D4E22AQGNI4C99RrLZg/feedshare-shrink_800/0/1674719775537?e=2147483647&v=beta&t=m-_Rj7WfkWDpwWI54stF7ef5G5qzRn05QWTi3cbUeY0', 'like_count': 56, 'comments_count': 2, 'date_published': '2023-01-26T07:56:16.751Z', 'total_engagement': 58, 'mentioned_profiles': []}]