Perfis de pesquisa, envie mensagens, encontre empregos e muito mais em Python. Não é necessário acesso oficial à API.
Documentação · Início rápido · Como funciona
✅ Não é necessário acesso oficial da API. Basta usar uma conta de usuário válida do LinkedIn.
✅ Interface API HTTP direta. Sem selaênio, pupas ou outros métodos de raspagem baseados em navegador.
✅ Obtenha e pesquise pessoas, empresas, empregos, postagens
✅ Enviar e recuperar mensagens
✅ Enviar e aceitar solicitações de conexão
✅ Obtenha e reaja às postagens
E mais! Leia os documentos para todos os métodos da API.
Importante
Esta biblioteca não é oficialmente apoiada pelo LinkedIn. O uso desta biblioteca pode violar os termos de serviço do LinkedIn. Use -o por sua conta e risco.
Observação
Python> = 3.10 necessário
PIP Instale o LinkedIn-api
Ou, para a borda sangrada:
pip install git+https: //github.com/tomquirk/linkedin-api.git
Dica
Veja todos os métodos da API nos documentos.
O snippet a seguir demonstra alguns casos básicos de uso do LinkedIn_API:
De LinkedIn_Api Import LinkedIn# Authenticate Usando qualquer conta do usuário do LinkedIn credenciaissapi = LinkedIn ('[email protected] ',' ********* ')# Get A Proffil um perfis Contato Infocontact_info = api.get_profile_contact_info ('billy-g')# Get 1st Conexões de grau de um determinado profileConnections = api.get_profile_connections ('1234asc12304')Esta é uma seção patrocinada
Extraia dados e encontre e-mails verificados em tempo real com a API Prospeo LinkedIn Email Finder.
Dados de perfil extraídos em tempo real
Dados da empresa do perfil
E -mail de trabalho verificado do perfil
Pontos de dados exclusivos (gênero, código de país limpo, fuso horário ...)
Uma solicitação de fazer tudo
API estável, testada sob alta carga
Experimente com 75 perfis. Obtenha sua chave de API gratuita agora.
Raspe os dados do perfil do LinkedIn Public LinkedIn em escala com APIs proxycurl.
A eliminação de perfis públicos é testada em batalha no tribunal no caso HIQ vs LinkedIn.
GDPR, CCPA, SOC2 compatível
Limite de alta taxa - 300 solicitações/minuto
Velozes - as APIs respondem em ~ 2s
Dados frescos - 88% dos dados são raspados em tempo real, outros 12% não têm mais de 29 dias
Alta precisão
Toneladas de pontos de dados retornados por perfil
Construído para desenvolvedores, por desenvolvedores.
API completa do LinkedIn: Connect Classic/Sales Navigator/Recruither, sincronize mensagens em tempo real, enriqueça dados e construa sequências de divulgação…
Conecte facilmente seus usuários na nuvem com nossa autenticação de etiqueta branca (Captcha Solving, INAp Validation, OTP, 2FA).
WebHook em tempo real para cada mensagem recebida, status de leitura, convite aceito e muito mais.
Extração de dados: obtenha perfil, obtenha companhia, obtenha postagem, extrair resultados de pesquisa do clássico + navegador de vendas + recrutador
Sequências de divulgação: Envie convites, insultos, mensagens e comentários nas postagens…
Teste todos os recursos com nossa avaliação gratuita de 7 dias.
Raspe os dados do LinkedIn, sem limite com a API de sucracas.
Dados em tempo real (sem cache)
Construído para desenvolvedores de SaaS
GDPR, CCPA, SOC2 compatível
Documentação da API interativa
Uma API altamente estável, apoiada por mais de 4 anos de experiência em provisionamento de dados, com a confiabilidade adicional de duas marcas adicionais de provedores de dados pertencentes à empresa por trás do Scrapin.
Experimente de graça. Obtenha sua chave de API agora
Acesse dados do LinkedIn de alta qualidade e em tempo real em escala com a API ISCRAPER, oferecendo escalabilidade ilimitada e precisão incomparável.
Dados do LinkedIn em tempo real raspando com precisão incomparável
Conjuntos de dados hospedados com poderoso acesso à pesquisa do Lucene
Projetado para aplicativos corporativos e de nível corporativo
Lida com milhões de arranhões por dia, garantindo escalabilidade ilimitada
Confiável pelas principais empresas para as necessidades de dados da missão crítica
Documentação interativa da API criada no OpenAPI 3 especificações para integração perfeita
Apoiado por mais de 10 anos de experiência em provisionamento de dados em tempo real
Garantia de preço mais baixa para uso de alto volume
Comece aqui.
Seção Patrocinada Final
poetry
Uma conta de usuário válida do LinkedIn (não use sua conta pessoal, se possível)
Crie um arquivo de configuração .env (use .env.example como referência)
Instale dependências usando poetry :
Instalação de poesia poesia eu adicione poesia-plugin-dotenv
Execute todos os testes:
Poesia Run Pytest
Executar testes de unidade:
Poesia Executar testes/unidade de pytest
Execute testes E2E:
Poesia de pytest testes/e2e
Poesia corre preta -check.
Ou para consertar:
Poesia corre preta.
CHALLENGEO LinkedIn lançará uma bola curva na forma de um URL do desafio. Atualmente, não lidamos com isso, e você está meio ferrado. Achamos que poderia ser apenas baseado em IP (ou seja, login de um local diferente). Sua melhor chance de resolução é fazer logon e logon no seu navegador.
Razões conhecidas de desafio incluem:
2FA
Limit de taxa - "Parece que você está visitando um número muito alto de páginas no LinkedIn.". Nota - n = 1 Experimento em que esta página foi atingida após ~ 900 solicitações contíguas em uma única sessão (dentro de uma hora) (isso incluiu atrasos aleatórios entre cada solicitação), bem como um monte de testes, então quem conhece o limite real.
Por favor, adicione mais enquanto você os encontra.
A milhagem pode variar ao pesquisar palavras -chave gerais como "software" usando o método search padrão. Recentemente, eles adicionaram algumas inteligentes em busca de pesquisas pelas quais agrupam os resultados de pessoas, empresas, empregos etc. Se a consulta for geral o suficiente. Tente usar um método de pesquisa específico da entidade (ou seja, pesquisador) sempre que possível.
Este projeto tenta fornecer uma interface Python simples para a API do LinkedIn.
Você quer dizer a API legítima do LinkedIn?
NÃO! Para recuperar dados estruturados, o site do LinkedIn usa um serviço que eles chamam de Voyager . Os pontos de extremidade da Voyager nos dão acesso a praticamente tudo o que poderíamos querer do LinkedIn: perfis, empresas, conexões, mensagens etc. - qualquer coisa que você possa ver no LinkedIn.com, podemos obter da Voyager.
Este projeto tem como objetivo fornecer cobertura completa para a Voyager.
Como funciona?
Os pontos de extremidade da Voyager se parecem com o seguinte:
https://www.linkedin.com/voyager/api/identity/profileView/tom-quirkOu, mais claramente
___________________________________ _______________________________
| base path | resource |
https://www.linkedin.com/voyager/api /identity/profileView/tom-quirkEles são autenticados com um biscoito simples, que enviamos com todos os pedidos, juntamente com um monte de cabeçalhos.
Para obter um cookie, publicamos um determinado nome de usuário e senha (de uma conta de usuário válida do LinkedIn) para https://www.linkedin.com/uas/authenticate .
Estamos analisando o site do LinkedIn e identificamos alguns dados que queremos. E agora?
A seguir, descreve o método mais confiável para encontrar pontos de extremidade relevantes:
view source
command-f /Pesquise a página para obter alguma palavra-chave nos dados. Isso existirá dentro de uma tag <code> .
Role para baixo até o próximo elemento adjacente que será outra tag <code> , provavelmente com um id que se parece com algo como
<code style = "display: nenhum" id = "datalet-bpr-guid-3900675">
{"request": "/voyager/api/identidade/perfis/tom-quirk/perfilview", "status": 200, "body": "bpr-guid-3900675"} </code> O valor da request é o URL! ?
Você também pode usar a guia network nas ferramentas de desenvolvedor de navegadores, mas encontrará resultados mistos.
O LinkedIn.com usa o protocolo REST-LI para consultar dados. REST-LI é uma linguagem/sintaxe de consulta interna em que clientes (como o LinkedIn.com) especificam quais dados eles desejam. É conceitualmente semelhante ao GraphQL.
Aqui está um exemplo de solicitar name e groups de uma organização (os grupos do LinkedIn que ele gerencia):
/voyager/api/organization/companies?decoration=(name,groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url))&q=universalName&universalName=linkedin A "consulta" acontece no parâmetro decoration , que se parece com o seguinte:
(
name,
groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url)
) Aqui, solicitamos um nome de organização e uma lista de grupos, onde para cada grupo queremos largeLogo , groupName e assim por diante.
Diferentes pontos de extremidade usam parâmetros diferentes (e talvez até sintaxes diferentes) para especificar essas consultas. Observe que a consulta acima tinha um parâmetro q cujo valor era universalName ; A consulta foi então especificada com o parâmetro decoration .
/search/cluster q=guided guided
List(v->PEOPLE)Pode ser possível documentar (e implementar uma boa interface para) essa linguagem de consulta - à medida que adicionamos mais pontos de extremidade a este projeto, tenho certeza de que ficará mais claro se isso seria possível (e se vale a pena) .
version Bump em pyproject.toml
poetry build
poetry publish -r test-pypi
poetry publish
Notas de liberação do rascunho no Github.
Esta biblioteca não é endossada ou suportada pelo LinkedIn. É uma biblioteca não oficial destinada apenas a fins educacionais e uso pessoal. Ao usar esta biblioteca, você concorda em não responsabilizar o autor ou colaboradores por quaisquer consequências resultantes de seu uso.