搜索配置文件,发送消息,查找工作以及更多信息。无需官方API访问。
文档·快速启动·它如何工作
✅无需官方API访问。只需使用有效的LinkedIn用户帐户即可。
✅直接HTTP API接口。没有硒,pupeteer或其他基于浏览器的刮擦方法。
✅获取和搜索人员,公司,工作,职位
✅发送和检索消息
✅发送并接受连接请求
✅获取和对帖子做出反应
还有更多!阅读所有API方法的文档。
重要的
该图书馆不受LinkedIn正式支持。使用此库可能会违反LinkedIn的服务条款。使用它自己的风险。
笔记
python> = 3.10需要
PIP安装LinkedIn-Api
或者,出血边缘:
PIP安装git+https://github.com/tomquirk/linkedin-api.git
提示
请参阅文档上的所有API方法。
以下片段演示了一些基本的linkedin_api用例:
来自linkedin_api import LinkedIn#Authenticate使用任何LinkedIn用户帐户resterentialSapi = linkedIn('[email protected]','*******')#获取profileProfile = api.get_get_profile('billy-g')#get get get get get get contiles contact infocontact_info = api.get_profile_contact_info('billy-g')#获取给定的profileConnections的一级连接= api.get_profile_connections('1234ASC12304')
这是赞助部分
提取数据并使用prospeo LinkedIn电子邮件查找器API实时找到经过验证的电子邮件。
实时提取的个人资料数据
个人资料的公司数据
配置文件的验证工作电子邮件
独家数据点(性别,清洁国家代码,时区...)
一个do-it-all请求
稳定的API,在高负载下测试
尝试使用75个配置文件。立即获取免费的API键。
用ProxyCurl API大规模刮擦公共LinkedIn配置文件数据。
在HIQ vs LinkedIn案中,在法庭上进行了刮擦公共资料。
GDPR,CCPA,符合SOC2
高利率限制-300个请求/分钟
快速 - API在〜2s中响应
新鲜数据 - 88%的数据是实时刮擦的,其他12%的数据不超过29天
高精度
每个配置文件返回的数据点
由开发人员为开发人员建造。
完整的LinkedIn API:连接经典/销售导航器/招聘人员,同步实时消息,丰富数据并构建外展序列…
轻松地将您的用户与我们的白色标签身份验证(Captcha求解,应用程序内验证,OTP,2FA)连接。
每个接收到的消息,阅读状态,接受邀请等的实时Webhook等。
数据提取:获取个人资料,获取公司,获取发布,从Classic + Sales Navigator +招聘人员提取搜索结果
外展序列:发送邀请函,inmail,消息和评论帖子…
通过我们的7天免费试用期测试所有功能。
从LinkedIn中刮擦任何数据,无限制地使用Scrapin API。
实时数据(无缓存)
为SaaS开发人员建造
GDPR,CCPA,符合SOC2
交互式API文档
高度稳定的API,获得了超过4年的数据提供经验,并在Scrapin后面拥有的两个其他数据提供商品牌的可靠性增加了。
免费尝试。立即获取API键
使用ISCRAPER API访问高质量的实时LinkedIn数据,提供无限的可扩展性和无与伦比的精度。
实时LinkedIn数据用无与伦比的精度刮擦
托管具有强大Lucene搜索访问的数据集
专为企业和公司级别的应用程序设计
每天处理数百万个刮擦,确保无限的可伸缩性
高级企业对关键任务数据需求的信任
建立在OpenAPI 3规格上的交互式API文档用于无缝集成
在实时数据提供的10多年经验的支持下
大量使用的最低价格保证
开始这里。
最终赞助部分
poetry
有效的LinkedIn用户帐户(如果可能的话,请勿使用您的个人帐户)
创建一个.env配置文件(使用.env.example作为参考)
使用poetry安装依赖性:
诗歌安装 诗歌自我添加诗歌 - 普鲁金 - dotenv
运行所有测试:
诗歌运行pytest
运行单元测试:
诗歌运行Pytest测试/单位
运行E2E测试:
诗歌运行Pytest测试/E2E
诗歌奔跑黑色 - 检查。
或修复:
诗歌成黑色。
CHALLENGELinkedIn将以挑战URL的形式为您扔一个曲线球。我们目前没有处理这个问题,所以您有点搞砸了。我们认为这可能只是基于IP的(即从不同位置登录)。解决方案的最佳机会是注销并重新登录浏览器。
挑战的已知原因包括:
2FA
费率限制 - “看起来您正在访问LinkedIn上的大量页面。”。注意 - n = 1实验,该页面在单个会话中(在一个小时内)在〜900个连续请求之后被打击(其中包括每个请求之间的随机延迟)以及一堆测试,因此谁知道实际限制。
当您遇到它们时,请添加更多。
使用标准search方法在搜索“软件”之类的一般关键字时,里程可能会有所不同。他们最近在搜索周围添加了一些智能,通过人员,公司,工作等将结果分组。如果查询足够通用。尝试在可能的情况下使用特定于实体的搜索方法(即search_people)。
该项目试图为LinkedIn API提供一个简单的Python接口。
您是说合法的LinkedIn API吗?
不!为了检索结构化数据,LinkedIn网站使用他们称为Voyager的服务。 Voyager端点使我们可以访问LinkedIn中几乎所有想要的东西:个人资料,公司,连接,消息等 - 您可以在LinkedIn.com上看到的任何内容,我们可以从Voyager那里获得。
该项目旨在为Voyager提供完整的覆盖范围。
它如何工作?
Voyager端点看起来像这样:
https://www.linkedin.com/voyager/api/identity/profileView/tom-quirk或者,更清楚
___________________________________ _______________________________
| base path | resource |
https://www.linkedin.com/voyager/api /identity/profileView/tom-quirk它们通过简单的cookie进行身份验证,我们随着每个请求以及一堆标头发送。
要获取cookie,我们将给定的用户名和密码(有效的LinkedIn用户帐户的)发布到https://www.linkedin.com/uas/authenticate 。
我们正在查看LinkedIn网站,我们发现了一些我们想要的数据。现在什么?
以下描述了找到相关终点的最可靠的方法:
view source
command-f /搜索页面中的一些关键字。这将存在于<code>标签的内部。
向下滚动到下一个相邻元素,该元素将是另一个<code>标签,可能带有一个看起来像类似的id
<code style =“ display:none” id =“ datalet-bpr-guid-3900675”>
{“ request”:“/voyager/api/Identity/profiles/tom-quirk/profileView”,“状态”:200,“ body”:“ bpr-guid-3900675”} </code> request的价值是URL! ?
您还可以在浏览器开发人员工具中使用network选项卡,但是您会遇到不同的结果。
LinkedIn.com使用REST-LI协议来查询数据。 REST-LI是一种内部查询语言/语法,客户端(例如LinkedIn.com)指定他们想要的数据。它在概念上与GraphQl相似。
这是向组织的name和groups提出请求的示例(其管理的LinkedIn组):
/voyager/api/organization/companies?decoration=(name,groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url))&q=universalName&universalName=linkedin “查询”发生在decoration参数中,该参数看起来如下:
(
name,
groups*~(entityUrn,largeLogo,groupName,memberCount,websiteUrl,url)
)在这里,我们要求一个组织名称和一个组列表,每个组都需要largeLogo , groupName等。
不同的端点使用不同的参数(甚至不同的语法)来指定这些查询。请注意,上面的查询具有一个参数q ,其值为universalName ;然后用decoration参数指定查询。
相比之下, /search/cluster端点使用q=guided ,并用guided参数指定其查询,其值是类似于
List(v->PEOPLE)可以记录(并实现一个不错的界面)此查询语言 - 当我们在该项目中添加更多端点时,我相信是否可以更清楚这种事情是否可以使用(如果值得) 。
bump version pyproject.toml
poetry build
poetry publish -r test-pypi
poetry publish
草稿发行说明在Github中。
该库不受LinkedIn的认可或支持。这是一个非官方图书馆,仅用于教育目的和个人用途。通过使用此图书馆,您同意不承担作者或贡献者的用法造成的任何后果。