linked in grab down

this is a test.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         linked in grab down
// @namespace    http://tampermonkey.net/
// @version      0.111
// @description  this is a test.
// @author       vyue
// @match        *://*.linkedin.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=linkedin.com
// @grant        none
// @license      this is a test
// ==/UserScript==

(function() {
    'use strict';
function isexists() {
    if (document.querySelectorAll(".page-not-found__subheadline").length>0 || window.location.href.indexOf('linkedin.cn') >= 0)
    {
        return false;
    };
    return true;
}


function detail() {

    if (document.querySelectorAll(".top-level-modal-container button").length>0) {
        document.querySelectorAll(".top-level-modal-container button")[0].click();
    }
    var obj = {};

    if (window.location.href.indexOf('linkedin.com/in') >= 0) {
        obj["type"] = "person";
        obj["name"] = document.querySelector(".top-card-layout__card h1").innerText;
        obj["position"] = document.querySelector(".top-card-layout__card h2").innerText;
        obj["country"] = document.querySelector(".top-card-layout__card h3 div").innerText;

        if (document.querySelectorAll(".top-card-layout__card h3 font").length>0) {
            obj["follows"] = document.querySelectorAll(".top-card-layout__card h3 font")[0].children[0].innerText.split(' ')[0];
            obj["friends"] = document.querySelectorAll(".top-card-layout__card h3 font")[0].children[1].innerText.split(' ')[0];
        }
        obj["company"] = document.querySelector(".top-card__links-container div span").innerText;
        if (document.querySelectorAll(".top-card__links-container div a").length > 0 && document.querySelectorAll(".top-card__links-container div a")[0].href.indexOf("company") >= 0) {
            obj["companylink"] = document.querySelectorAll(".top-card__links-container div a")[0].href;
        }



        var h2ary = document.querySelectorAll(".core-section-container__title.section-title");
        for (var i = 0; i < h2ary.length; i++) {
            if (h2ary[i].innerText.indexOf('工作经历') >= 0 || h2ary[i].innerText.indexOf('Experience') >= 0) {

                var workJarray = [];
                  var workAry= h2ary[i].nextElementSibling.children[0].children

                for (var wIndex = 0; wIndex < workAry.length; wIndex++) {
                    if (workAry[wIndex].querySelectorAll('ul').length == 0) {
                        var workObj = {};
                        workObj['position'] = workAry[wIndex].querySelector("div h3").innerText;
                        workObj["company"] = workAry[wIndex].querySelector("div h4").innerText;

                        if (h2ary[i].nextElementSibling.children.length > 0 && workAry[wIndex].querySelectorAll("div div p").length > 0) {


                            workObj["time"] = workAry[wIndex].querySelectorAll("div div p")[0].innerText;

                            if (workAry[wIndex].querySelectorAll("div div p").length > 1) {
                                workObj["country"] = workAry[wIndex].querySelectorAll("div div p")[1].innerText;
                            }
                            if (workAry[wIndex].querySelectorAll("div div p").length > 2) {
                                workObj["job"] = workAry[wIndex].querySelectorAll("div div p")[workAry[wIndex].querySelectorAll("div div p").length - 1].innerText.replace('收起', '').replace('Show less', '').trim('\n');
                            }
                        }
                        workJarray.push(workObj);
                    }
                    else if (workAry[wIndex].querySelectorAll('ul').length > 0) {

                        workAry[wIndex].querySelectorAll("a h4")[0].innerText

                        workAry[wIndex].querySelectorAll("ul li")


                        for (var positionIndex = 0; positionIndex < workAry[wIndex].querySelectorAll("ul li").length; positionIndex++) {

                            var workObj1 = {};
                            workObj1["company"] = workAry[wIndex].querySelectorAll("a h4")[0].innerText;

                            workObj1["position"] = workAry[wIndex].querySelectorAll("ul li")[positionIndex].querySelector("h3").innerText;

                            workObj1["time"] = workAry[wIndex].querySelectorAll("ul li")[positionIndex].querySelector("div p").innerText;
                            if (workAry[wIndex].querySelectorAll("ul li")[positionIndex].querySelectorAll("div div p").length > 2) {
                                workObj1["job"] = workAry[wIndex].querySelectorAll("ul li")[positionIndex].querySelectorAll("div div p")[workAry[wIndex].querySelectorAll("ul li")[positionIndex].querySelectorAll("div div p").length - 1].innerText.replace('收起', '').replace('Show less', '').trim('\n');
                            }

                            workJarray.push(workObj1);
                        }
                    }
                }

                obj["work"] = workJarray;
            }
            else if (h2ary[i].innerText.indexOf('关于') >= 0 || h2ary[i].innerText.indexOf('About') >= 0) {
                obj["intro"] = h2ary[i].nextElementSibling.innerText;
            }
            else if (h2ary[i].innerText.indexOf('教育经历') >= 0 || h2ary[i].innerText.indexOf('About') >= 0) {

                var studyAry = h2ary[i].nextElementSibling.children[0].children
                studyAry[0].querySelector("div h3").innerText
                studyAry[0].querySelector("div h4").innerText

                if (studyAry[0].querySelectorAll("div div p").length > 0) {
                    studyAry[0].querySelectorAll("div div p")[0].innerText
                }

                if (studyAry[0].querySelectorAll("div div p").length > 1) {
                    studyAry[0].querySelectorAll("div div p")[1].innerText
                }
                if (studyAry[0].querySelectorAll("div div p").length > 2) {
                    studyAry[0].querySelectorAll("div div p")[2].innerText
                }
            }
            else if (h2ary[i].innerText.indexOf('资格认证') >= 0 || h2ary[i].innerText.indexOf('Certifications') >= 0) {
                h2ary[i].nextElementSibling.querySelectorAll("ul li")
                h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelector("h3").innerText
                h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelector("h4").innerText
                h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelectorAll("time")[0].innerText

                if (h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelectorAll("time").length > 1) {
                    h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelectorAll("time")[1].innerText
                }
                if (h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelector("a[class='certifications__button']")) {
                    h2ary[i].nextElementSibling.querySelectorAll("ul li")[0].querySelector("a[class='certifications__button']").href
                }
            }
            else if (h2ary[i].innerText.indexOf('动态') >= 0 || h2ary[i].innerText.indexOf('Activity') >= 0 ) {

                var dongtaiAry = h2ary[i].nextElementSibling.querySelectorAll("li");
                var dongtaiJarray = [];
                for (var dtIndex = 0; dtIndex < dongtaiAry.length; dtIndex++) {

                    var dongtaiObj = {};
                    dongtaiObj["href"] = dongtaiAry[dtIndex].querySelectorAll("div")[0].querySelector("a").href;

                    if (dongtaiAry[dtIndex].querySelectorAll("div").length > 1 && dongtaiAry[dtIndex].querySelectorAll("div")[1].querySelectorAll("img").length>0)
                    {
                        dongtaiObj["img"] = dongtaiAry[dtIndex].querySelectorAll("div")[1].querySelector("img").src;
                    }
                    if (dongtaiAry[dtIndex].querySelectorAll("div").length > 2 && dongtaiAry[dtIndex].querySelectorAll("div")[2].querySelectorAll("h3").length>0) {
                        dongtaiObj["content"] = dongtaiAry[dtIndex].querySelectorAll("div")[2].querySelector("h3").innerText;
                    }
                    if (dongtaiAry[dtIndex].querySelectorAll("div").length > 2 && dongtaiAry[dtIndex].querySelectorAll("div")[2].querySelectorAll("h4").length>0) {
                        dongtaiObj["type"] = dongtaiAry[dtIndex].querySelectorAll("div")[2].querySelector("h4").innerText;
                    }

                    dongtaiJarray.push(dongtaiObj);
                }

                obj["dongtai"] = dongtaiJarray;
            }
        }
    }
    else if (window.location.href.indexOf('linkedin.com/company') >= 0) {
        obj["type"] = "company";
        obj["name"] = document.querySelector(".top-card-layout__card h1").innerText;;
        obj["instry"] = document.querySelector(".top-card-layout__card h2").innerText;;

        if (document.querySelector(".top-card-layout__card h3")) {
            obj["country"] = document.querySelector(".top-card-layout__card h3").innerText.replace(document.querySelector(".top-card-layout__card h3 span").nextSibling.textContent.trim('\n'),"");
            document.querySelector(".top-card-layout__card h3 span").nextSibling;
        }
        if (document.querySelector(".top-card-layout__card h4")) {
            document.querySelector(".top-card-layout__card h4").innerText;
        }

        var h2ary11 = document.querySelectorAll(".core-section-container__title.section-title");
        for (var i1 = 0; i1 < h2ary11.length; i1++) {
            if (h2ary11[i1].innerText.indexOf('关于我们') >= 0 || h2ary11[i1].innerText.indexOf('About us') >= 0) {

                obj["intro"] = h2ary11[i1].nextElementSibling.children[0].innerText;

                for (var companyInfoIndex = 0; companyInfoIndex < h2ary11[i1].nextElementSibling.children[1].children.length; companyInfoIndex++) {
                    var companyinfodetail= h2ary11[i1].nextElementSibling.children[1].children[companyInfoIndex];
                    if (companyinfodetail.innerText.indexOf('网站') >= 0 || companyinfodetail.innerText.indexOf('Website') >= 0) {
                        obj["website"] = companyinfodetail.innerText.split('\n')[1];
                    }
                    else if (companyinfodetail.innerText.indexOf('行业') >= 0 || companyinfodetail.innerText.indexOf('Industries') >= 0) {
                        obj["industry"] = companyinfodetail.innerText.split('\n')[1];
                    }
                    else if (companyinfodetail.innerText.indexOf('规模') >= 0 || companyinfodetail.innerText.indexOf('Company size') >= 0) {
                        obj["employeecount"] = companyinfodetail.innerText.split('\n')[1];
                    }
                    else if (companyinfodetail.innerText.indexOf('创立') >= 0 || companyinfodetail.innerText.indexOf('Founded') >= 0) {
                        obj["opentime"] = companyinfodetail.innerText.split('\n')[1];

                    }
                    else if (companyinfodetail.innerText.indexOf('领域') >= 0 || companyinfodetail.innerText.indexOf('Specialties') >= 0) {
                        obj["industrydetail"] = companyinfodetail.innerText.split('\n')[1];

                    }
                    else if (companyinfodetail.innerText.indexOf('类型') >= 0 || companyinfodetail.innerText.indexOf('Type') >= 0) {
                        obj["companytype"] = companyinfodetail.innerText.split('\n')[1];

                    }
                    else if (companyinfodetail.innerText.indexOf('总部') >= 0 || companyinfodetail.innerText.indexOf('Headquarters') >= 0) {
                        obj["mainaddress"] = companyinfodetail.innerText.split('\n')[1];

                    }
                }
            }
            else if (h2ary11[i].innerText.indexOf('地点') >= 0 || h2ary11[i].innerText.indexOf('Locations') >= 0) {
                obj["mainaddress"] = h2ary11[i].nextElementSibling.children[0].children[0].querySelector("div").innerText;

            }
            else if (h2ary11[i].innerText.indexOf('动态') >= 0 || h2ary11[i].innerText.indexOf('Updates') >= 0) {
                var dongTai = h2ary11[i].nextElementSibling.children[0].children;

                var dongtaiJarray1 = [];
                for (var dtIndex1 = 0; dtIndex1 < 3; dtIndex1++) {
                    var dongtaiObj1 = {};

                    var dtDetail = dongTai[dtIndex1];
                    dongtaiObj1["content"] = dtDetail.querySelectorAll("article>div")[2].innerText;
                    if (dtDetail.querySelectorAll("article>div video").length>0) {
                        dongtaiObj1["video"] = dtDetail.querySelectorAll("article>div video")[0].src;
                    }
                    if (dtDetail.querySelectorAll("article  ul li img").length > 0) {
                        var imgAry = dtDetail.querySelectorAll("article  ul li img");
                        var imgurl = '';
                        for (var imgIndex = 0; imgIndex < imgAry.length; imgIndex++) {
                            imgurl += (imgurl.length == 0 ? '' : ',');
                            imgurl += imgAry[imgIndex].src;
                        }
                        dongtaiObj1["img"] = imgurl;
                    }
                    else if (dtDetail.querySelectorAll("article>a>img").length>0) {
                        dongtaiObj1["img"] = dtDetail.querySelectorAll("article>a>img")[0].src;
                    }
                    dongtaiJarray1.push(dongtaiObj1);
                }
                obj["dongtai"] = dongtaiJarray1;
            }
        }
    }

    return JSON.stringify(obj);
}

    function downloadTxt(fileName, content) {
   let blob = new Blob([content], {
       type: "text/plain;charset=utf-8"
    });
   let reader = new FileReader();
   reader.readAsDataURL(blob);
   reader.onload = function(e) {
	  let a = document.createElement('a');
	  a.download = fileName;
	  a.href = e.target.result;
	  document.body.appendChild(a);
	  a.click();
	  document.body.removeChild(a);
  }
}
    isexists();
    var result=detail();
    downloadTxt(JSON.parse(result)["name"] ,result);

})();