软件研发

如何使用Python将LinkedIn上的数据收集到CSV中?

2020-07-31 17:12:10 | 来源:中培企业IT培训网

我们了解了如何使用代理刮擦器 和 Python从Linkedin收集数据,但在尝试之前请先阅读下文。在本文中我们将使用Python和Web Scraping Tool从Linkedin抓取数据。我们将提取公司名称,网站,行业,公司规模,员工人数,总部地址和专业。为什么使用这个工具?该工具将帮助我们使用数百万个旋转式住宅代理来抓取动态网站,以免被阻止。它还提供了验证码清除功能。

  程序

通常,网页抓取分为两个部分:

· 通过发出HTTP请求来获取数据。

· 通过解析HTML DOM提取重要数据

  库和工具

· Beautiful Soup 是一个Python库,用于从HTML和XML文件中提取数据。

· 通过请求, 您可以非常轻松地发送HTTP请求。

· 熊猫 提供 快速,灵活和富有表现力的数据结构

· Web Scraper 提取目标URL的HTML代码。

  建立

我们的设置非常简单。只需创建一个文件夹并安装Beautiful Soup和请求即可。要创建文件夹并安装库,请在给定命令下方键入。我假设您已经安装了Python3.x。

mkdir scraper

pip install beautifulsoup4

pip install requests

pip install pandas

现在,使用您喜欢的任何名称在该文件夹中创建一个文件。我正在使用scraping.py。

首先,您必须注册 Web Scraper。它将为您提供1000个免费积分。然后,只需在文件中导入Beautiful Soup和请求即可。像这样。

from bs4 import BeautifulSoupimport requestsimport pandas as pd

  我们要抓的东西

我们 将从Linkedin刮取Google的“关于”页面 。

  准备

现在,由于我们具备了准备刮板的所有要素,因此我们应该对目标URL 进行GET请求 以获取原始HTML数据。如果您不熟悉抓取工具,请敦促您仔细阅读其 文档。我们将使用请求来发出HTTP GET请求。现在,由于我们正在抓取公司页面,因此我将“ 类型”设置 为公司,将“ linkId”设置 为google / about /。可以在Linkedin的目标URL中找到LinkId。

r = requests.get(‘api_key=YOUR-API-KEY&type=company&linkId=google/about/').text

这将为您提供这些目标URL的HTML代码。

提出上述要求时,请使用您的Scrapingdog API密钥。

现在,您必须使用BeautifulSoup来解析HTML。

soup=BeautifulSoup(r,’html.parser’)

l={}

u=list()

正如上述看到的那样,公司的名称存储在 带有标签h1的“ org-top-card-summary__title t-24 t-black truncate ”类中 。

因此,我们将使用可变汤来提取该文本。

try:

l[“Company”]=soup.find(“h1”,{“class”:”org-top-card-summary__title t-24 t-black truncate”}).text.replace(“ ”,””)except:

l[“Company”]=None

我已将 n 替换为空字符串。

现在,我们将专注于提取网站,行业,公司规模,总部(地址),类型和专业。

所有上述特性(除了公司规模)的被存储在 类 “ ORG-页面details__definition文本T-14 T-黑-光叔正常 ”与标签 DD。 我将再次使用可变汤来提取所有属性。

allProp = soup.find_all(“dd”,{“class”:”org-page-details__definition-text t-14 t-black — light t-normal”})

现在,我们将一一从allProp 列表中提取属性 。

try:

l[“website”]=allProp[0].text.replace(“ ”,””)except:

l[“website”]=Nonetry:

l[“Industry”]=allProp[1].text.replace(“ ”,””)except:

l[“Industry”]=Nonetry:

l[“Address”]=allProp[2].text.replace(“ ”,””)except:

l[“Address”]=Nonetry:

l[“Type”]=allProp[3].text.replace(“ ”,””)except:

l[“Type”]=Nonetry:

l[“Specialties”]=allProp[4].text.replace(“ ”,””)except:

l[“Specialties”]=None

现在,我们将抓取 公司规模。

try:

l[“Company Size”]=soup.find(“dd”,{“class”:”org-about-company-module__company-size-definition-text t-14 t-black — light mb1 fl”}).text.replace(“ ”,””)except:

l[“Company Size”]=None

现在,我将按字典 l 列出 u。 然后,我们将使用熊猫创建一个列表u的数据框。

u.append(l)

df = pd.io.json.json_normalize(u)

现在,最后将我们的数据保存到CSV文件中。

df.to_csv(‘linkedin.csv’, index=False, encoding=’utf-8')

我们已经成功抓取了Linkedin公司页面。同样,您也可以抓取个人资料。 抓取个人资料页面之前,请先阅读 文档。

完整的代码

from bs4 import BeautifulSoupimport requestsimport pandas as pd

r = requests.get(‘api_key=YOUR-API-KEY&type=company&linkId=google/about/').text

soup=BeautifulSoup(r,’html.parser’)

u=list()

l={}

try:

l[“Company”]=soup.find(“h1”,{“class”:”org-top-card-summary__title t-24 t-black truncate”}).text.replace(“ ”,””)

except:

l[“Company”]=None

allProp = soup.find_all(“dd”,{“class”:”org-page-details__definition-text t-14 t-black — light t-normal”})

try:

l[“website”]=allProp[0].text.replace(“ ”,””)

except:

l[“website”]=None

try:

l[“Industry”]=allProp[1].text.replace(“ ”,””)

except:

l[“Industry”]=None

try:

l[“Company Size”]=soup.find(“dd”,{“class”:”org-about-company-module__company-size-definition-text t-14 t-black — light mb1 fl”}).text.replace(“ ”,””)

except:

l[“Company Size”]=None

try:

l[“Address”]=allProp[2].text.replace(“ ”,””)

except:

l[“Address”]=None

try:

l[“Type”]=allProp[3].text.replace(“ ”,””)

except:

l[“Type”]=None

try:

l[“Specialties”]=allProp[4].text.replace(“ ”,””)

except:

l[“Specialties”]=None

u.append(l)

df = pd.io.json.json_normalize(u)

df.to_csv(‘linkedin.csv’, index=False, encoding=’utf-8')

print(df)

以上就是关于如何使用Python将LinkedIn上的数据收集到CSV中的全部内容,想了解更多关于数据收集的信息,请继续关注中培伟业。

标签: Python 数据收集