【问题标题】:How to get company logo from Linkedin API?如何从 Linkedin API 获取公司徽标?
【发布时间】:2025-11-29 13:00:02
【问题描述】:

我在 Linkedin 上制作了一个模拟公司资料并上传了两张图片(请参阅问题底部的屏幕截图),我正在尝试获取第二张图片(大)。

我可以使用 Linkedin 文档中 Company Profile fields 列表中的 logo-urlsquare-logo-url 来获取第一张图片。我得到的信息是这样的:

{
    'logoUrl': 'https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAagAAAAJDMwYzRhOGVmLWU3MzUtNGUyNi05YTgzLWU3MzVhOGViNGYyZA.png',
    'squareLogoUrl': 'https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAS6AAAAJDI4ODQ4NTgxLTQzZGQtNDEzZi1iZjIwLWNiNDgxZTk2NmE5ZA.png',
    'description': "Bla bla",
    etc. etc.
}

链接logoUrlsquareLogoUrl 链接到第一张图片的方形版本。

有人知道我如何从 Linkedin API 获得更大的图像吗?欢迎所有答案!

【问题讨论】:

  • 您好 Kramer,LinkedIn 开发人员 API 入门有点棘手,因为要获得 OAuth 2.0 权限。我开始使用 Apigee 访问它 (tinyurl.com/grgzzqc)。但是,我尝试访问您的模拟 ZTMT 公司页面 (api.linkedin.com/v1/companies/9502799?format=json) 但收到了 403 Forbidden 响应。关于如何开始使用此 API 的任何建议?
  • @JonathanThoms - 要使用 Linkedin API,您需要在 linkedin.com/developer/apps 上创建一个 Linkedin 应用程序,并使用您获得的身份验证密钥来调用 API。我不确定 Apigee 是如何工作的,我刚刚尝试过弄乱它,但我也无法让它工作。我只是使用 Python 在我的网站中构建了 OAuth2。很抱歉没有答案。我稍后会尝试让它工作,如果我让它工作,我会告诉你!非常感谢您尝试帮助我,我真的真的需要让它发挥作用..

标签: json rest linkedin


【解决方案1】:

它链接到两个单独的图像(名称不同)。所以我要做的是查看宽度和高度参数,看看它们是否是用来使两个图像看起来不同的。所以第一张图片是 100x100,但第二张是 600x200。或者他们可能使用的是一张图片,但尺寸不同。

我刚刚访问了您提供的链接。请注意以下几点:

标志网址

JPG 格式的公司徽标网址。

您的示例 logo-url 说它是 PNG

使用 JPEG(JPG) 是因为如果您增加图像的大小,它不会给您带来锯齿。

更新:呃。我寻找某种问题,答案就在我面前。只需调出页面,右键单击大图像,然后从弹出菜单中选择“将图像另存为...”。由于这确实为您提供了正确的图像,因此您可能必须每次都抓取 HTML 源代码才能找到正确的图像(如果您要为多家公司执行此操作)。

好的 - 我花了一些时间重新找到您显示的网页...

这是一个 PHP 脚本,它将为您提取更大的徽标。您所要做的就是访问您需要从中提取它的网页:

<?php

    $a = file_get_contents( "ztmt.htm" );
    $a = str_replace( chr(13), "", $a );
    $a = str_replace( "<", "\n<", $a );
    $b = explode( "\n", $a );

    foreach( $b as $k=>$v ){
        if( preg_match("/hero-img/i",$v) ){
            $c = explode( " ", $v );
            foreach( $c as $k1=>$v1 ){
                if( preg_match("/\s+src\s*=/i", $v1) ){
                    $d = explode( "=", $v1);
                    $loc = substr( $d[1], 1, -1 );
                    echo "You can get the image from\n\n$loc\n";
                    }
                }
            }
        }
?>

如您所见,我下载了显示网页的 HTML 源代码(您可以在 PHP 中的一行中完成此操作),然后在 HTML 中拉入,将其分解为每行一个 HTML 命令,查找"hero-img" 行,获取该图像的路径,并将其打印出来。

您所要做的就是编写一个小 PHP,将您正在寻找的公司发送到 LinkedIn,转到该网页,删除 HTML(file_get_contents 也可以),然后让脚本拉出该网页为您提供的信息。这不能修复 LinkedIn 的混乱信息 - 它只是绕过它。

正如我妻子在学校告诉她的孩子们的那样——当你遇到问题时,建立一座桥梁并克服它。 LinkedIn 不会回应 - 所以从他们的网页中获取您需要的内容即可。

希望这能赢得我的绿色复选标记! :-)

顺便说一句:这被称为“hero-img”——你有没有看过是否有一个名为那个的标签?只是一个偶然的想法。我知道它没有被列出——但也许 LinkedIn 在保持文档更新方面和在响应请求方面一样糟糕。 :-/

我还会检查“hero-url”,因为其他所有内容都是“-url”。只是一个想法。

【讨论】:

  • 我知道链接是不同的,但它们只是同一个方形图像的不同版本(不是更宽的图像)。我知道它在我提供的链接中说它应该是 jpg 图像,但显然不是。知道如何获得更大的图像吗?
  • 好的 - 这太简单了。 :-) 只需打开该网页,右键单击大图像,然后选择“将图像另存为...”并保存。我刚刚下载了它。文件名是:AAEAAQAAAAAAAAXRAAAAJDE4YjhjZDI3LWRkMTQtNGEwNi1iMTIxLTVmY2U2NmUxNTQ3MA.png”这很奇怪,因为他们说它应该是 jpeg 格式。我能说什么?看起来如果你想自动化这个来获取其他公司的徽标,你可能不得不抓取源代码正确的文件。:-/ 顺便说一下 - 不要忘记将我标记为正确答案!它将抵消我之前得到的 -1。:-)
  • 我知道使用浏览器很简单。但我的想法是我可以使用 Linkedin API 以编程方式完成它。我无法手动访问我网站所有用户的公司页面。
  • 好吧,不要挑剔,但您的要求只是“有人知道我怎样才能获得更大的图像吗?”而不是“......通过LinkedIn”。 :-) 不过根据我的建议,只有两种方法可以找出答案。第一个是联系LinkedIn并询问他们为什么那个特定的标志没有指向正确的标志,第二个是自动转到LinkedIn的公司网页并抓取正确图像的HTML源代码。这是 LinkedIn 的问题,而不是 Stack Overflow 的问题。 Stack Overflow 对 LinkedIn 所做的事情没有发言权。明白了吗?
  • developer.linkedin.com/support 上,您可以看到Linkedin 实际上会将对其API 有疑问的人重定向到*,这就是我在这里问它的原因。
【解决方案2】:

我做了一点挖掘,但我自己不知道怎么做。但是,我发现了一个关于这个主题的线程可能有用 - 但我无权查看它,但似乎是针对您的确切问题。作为 Developer API 的活跃编码员,您可能拥有权限。该链接指向forum page,您应该会看到一个标题为“通过 API 请求公司英雄形象”的问题的链接。如果有帮助,请告诉我。

【讨论】:

  • 嗨,托马斯。感谢您的链接。不幸的是,我似乎也无权访问。该论坛上的最新帖子来自 2014 年,这让我觉得他们一起关闭了整个论坛,转而支持通过 Linkedin 提供支持(Linkedin 支持人员,你在哪里?!)。如果其他人可以访问这些论坛。我很高兴知道!标题表明该功能当时不存在,所以我开始担心他们仍然没有做任何事情来实现它.. :-( 但是感谢您的帮助!
  • 我在那里拥有标准权限。当我看到这个时,我很想知道他们是否有正确的答案——但像你一样——我也看不出来。 :-(
  • 哈。我认为没有人可以。除了刮,我不知道你会怎么解决这个问题。
【解决方案3】:

你不能这样做,因为第二张图片取决于该公司如何设计其在linkedin上的页面。

一家没有第二张大图的公司,

https://www.linkedin.com/company/ztrdg

因为它不是徽标,所以具有第二大图像的公司,

https://www.linkedin.com/company/ibm

所以那个图片(大的)不是linkedin管理的,当然不能从linkedin的api获取。

您唯一能做的就是使用一个好的图片库来调整徽标的大小。我建议使用 java 中的 imgscalr。

如果你想在存在的情况下获取大图,你可以使用公司 url,获取整个 html 文档,然后找到 top-image 类中的 url。还有一段代码:

Document  docu = Jsoup.connect(companyUrl).
            timeout(TIMEOUT).
            userAgent(CRAWLER_NAME).
            get();
Elements elements = document.getElementsByClassName("top-image");

【讨论】:

  • 我知道它是可选的,但它仍然由 Linkedin 管理和托管。当您在 Linkedin 上创建公司页面时,它只是一个标准化的上传字段。所以,linkedin 绝对有可能为它创建一个 API。但我开始怀疑他们是否这样做了。