如何从Linkedin API获取公司徽标?

时间:2016-01-12 16:45:22

标签: json rest linkedin

我在Linkedin& amp;上制作了一个模拟公司简介已经上传了两张图片(请参阅问题底部的截图),我正在尝试获取第二张图片(大图)。

我可以使用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获取更大的图像吗?欢迎所有答案!

enter image description here

3 个答案:

答案 0 :(得分:4)

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

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

logo-url

JPG 格式的公司徽标的网址。

您的示例徽标-URl表示 PNG

使用JPEG(JPG),因为如果增加图像的大小,它不会给你带来麻烦。

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

enter image description here

好的 - 花了我一段时间来重新展示你展示的网页......

这是一个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不会回复 - 所以只需从他们的网页上获取你需要的东西。

Hopefull这赢得了我的绿色选中标记! : - )

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

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

答案 1 :(得分:1)

我做了一点挖掘,但我无法弄清楚自己是怎么做的。但是,我在这个主题上找到了一个可能有用的帖子 - 但我没有被授权查看它,但似乎是你的确切问题。作为Developer API的有效编码器,您可能拥有权限。该链接指向forum page,您应该会看到一个标题为“通过API请求公司英雄形象”的问题的链接。如果有帮助,请告诉我。

答案 2 :(得分:1)

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

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

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

一家拥有第二张大图片的公司,因为它不是徽标,

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

因此,图像(大图)不是由admin管理的,当然你无法从linkedin的api中获取它。

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

如果你想在它存在时获得大图像,你可以使用公司网址,并获得整个HTML文档,然后找到顶级图像类中的网址。还有一段代码:

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