我们了解了如何使用代理刮擦器 和 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中的全部内容,想了解更多关于数据收集的信息,请继续关注中培教育。