【问题标题】:Scraping profiles with Python and the "scrape-linkedin" package使用 Python 和“scrape-linkedin”包抓取配置文件
【发布时间】:2020-09-12 21:39:22
【问题描述】:

我正在尝试使用 scrape_linkedin package。我按照 github 页面上有关如何设置 package/LinkedIn li_at 键的部分进行操作(为了清楚起见,我将其粘贴在这里)。

Getting LI_AT
Navigate to www.linkedin.com and log in
Open browser developer tools (Ctrl-Shift-I or right click -> inspect element)
Select the appropriate tab for your browser (Application on Chrome, Storage on Firefox)
Click the Cookies dropdown on the left-hand menu, and select the www.linkedin.com option
Find and copy the li_at value

从我的 LinkedIn 收集 li_at 值后,我运行以下代码:

from scrape_linkedin import ProfileScraper

with ProfileScraper(cookie='myVeryLong_li_at_Code_which_has_characters_like_AQEDAQNZwYQAC5_etc') as scraper:
    profile = scraper.scrape(url='https://www.linkedin.com/in/justintrudeau/')
print(profile.to_dict())

我有两个问题(我原本是 R 用户)。

  1. 如何输入个人资料列表:

    https://www.linkedin.com/in/justintrudeau/

    https://www.linkedin.com/in/barackobama/

    https://www.linkedin.com/in/williamhgates/

    https://www.linkedin.com/in/wozniaksteve/

然后抓取配置文件? (在 R 中,我将使用 purrr 包中的 map 函数将该函数应用于每个 LinkedIn 个人资料)。

  1. 输出(来自原始 github 页面)以 JSON 样式格式返回。我的第二个问题是如何将其转换为 pandas 数据框(即返回类似于以下内容)。

{'personal_info': {'name': 'Steve Wozniak', 'headline': 'Fellow at 苹果”,“公司”:无,“学校”:无,“位置”:“旧金山 湾区','摘要':'','图像':'','关注者':'','电子邮件':无, “电话”:无,“已连接”:无,“网站”:[], 'current_company_link': 'https://www.linkedin.com/company/sandisk/'}, '经验':{'工作':[{'职称':'首席科学家','公司': 'Fusion-io', 'date_range': '2014 年 7 月至今', 'location': 'Primary 数据”、“描述”:“我正在研究适用的未来技术 到服务器和存储,并帮助这家我喜欢的公司获得 注意到并获得领先,以便世界可以发现新的惊人 他们开发的技术。我的角色主要是市场营销 目前,但这会随着时间的推移而改变。", 'li_company_url': 'https://www.linkedin.com/company/sandisk/'}, {'title': 'Fellow', 'company': 'Apple', 'date_range': 'Mar 1976 – Present', 'location': '1 无限循环,Cupertino,CA 94015','描述':'数字设计 工程师。','li_company_url':''},{'title':'总裁兼首席技术官', '公司':'宙斯之轮','date_range':'2002 - 2005','位置': 无,“描述”:无,“li_company_url”: 'https://www.linkedin.com/company/wheels-of-zeus/'},{'标题': '诊断程序员','公司':'TENET Inc.','date_range':'1970 – 1971','位置':无,'描述':无,'li_company_url': ''}], '教育': [{'name': '加州大学伯克利分校', '学位':'BS','等级':无,'field_of_study':'EE & CS', 'date_range': '1971 – 1986', 'activities': None}, {'name': '大学 科罗拉多博尔德的','学位':'荣誉博士','成绩':无, 'field_of_study':'电气和电子工程', “日期范围”:“1968 – 1969”,“活动”:无}],“志愿服务”: []},“技能”:[],“成就”:{“出版物”:[], “认证”:[],“专利”:[],“课程”:[],“项目”:[], '荣誉':[],'test_scores':[],'语言':[],'组织': []}, '兴趣': ['西部数据', '科罗拉多大学 Boulder”、“Western Digital Data Center Solutions”、“NEW Homebrew” 计算机俱乐部”、“宙斯之轮”、“闪迪®”]}

【问题讨论】:

    标签: python


    【解决方案1】:

    首先,您可以创建一个自定义函数来抓取数据并使用 Python 中的map 函数将其应用于每个配置文件链接。

    其次,要使用字典创建 pandas 数据框,您只需将字典传递给 pd.DataFrame。

    因此要创建一个数据框df,带有字典dict,你可以这样做:

    df = pd.DataFrame(dict)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2021-02-28
      • 1970-01-01
      • 2012-08-22
      • 2013-01-12
      • 2013-01-19
      • 1970-01-01
      相关资源
      最近更新 更多