我們了解了如何使用代理刮擦器 和 Python從Linkedin收集數(shù)據(jù),但在嘗試之前請先閱讀下文。在本文中我們將使用Python和Web Scraping Tool從Linkedin抓取數(shù)據(jù)。我們將提取公司名稱,網(wǎng)站,行業(yè),公司規(guī)模,員工人數(shù),總部地址和專業(yè)。為什么使用這個工具?該工具將幫助我們使用數(shù)百萬個旋轉(zhuǎn)式住宅代理來抓取動態(tài)網(wǎng)站,以免被阻止。它還提供了驗(yàn)證碼清除功能。
程序
通常,網(wǎng)頁抓取分為兩個部分:
· 通過發(fā)出HTTP請求來獲取數(shù)據(jù)。
· 通過解析HTML DOM提取重要數(shù)據(jù)
庫和工具
· Beautiful Soup 是一個Python庫,用于從HTML和XML文件中提取數(shù)據(jù)。
· 通過請求,?您可以非常輕松地發(fā)送HTTP請求。
· 熊貓 提供 快速,靈活和富有表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu)
· Web Scraper 提取目標(biāo)URL的HTML代碼。
建立
我們的設(shè)置非常簡單。只需創(chuàng)建一個文件夾并安裝Beautiful Soup和請求即可。要創(chuàng)建文件夾并安裝庫,請?jiān)诮o定命令下方鍵入。我假設(shè)您已經(jīng)安裝了Python3.x。
mkdir scraper
pip install beautifulsoup4
pip install requests
pip install pandas
現(xiàn)在,使用您喜歡的任何名稱在該文件夾中創(chuàng)建一個文件。我正在使用scraping.py。
首先,您必須注冊 Web Scraper。它將為您提供1000個免費(fèi)積分。然后,只需在文件中導(dǎo)入Beautiful Soup和請求即可。像這樣。
from bs4 import BeautifulSoupimport requestsimport pandas as pd
我們要抓的東西
我們 將從Linkedin刮取Google的“關(guān)于”頁面 。
準(zhǔn)備
現(xiàn)在,由于我們具備了準(zhǔn)備刮板的所有要素,因此我們應(yīng)該對目標(biāo)URL 進(jìn)行GET請求 以獲取原始HTML數(shù)據(jù)。如果您不熟悉抓取工具,請敦促您仔細(xì)閱讀其 文檔。我們將使用請求來發(fā)出HTTP GET請求?,F(xiàn)在,由于我們正在抓取公司頁面,因此我將“ 類型”設(shè)置 為公司,將“ linkId”設(shè)置 為google / about /??梢栽贚inkedin的目標(biāo)URL中找到LinkId。
r = requests.get(‘a(chǎn)pi_key=YOUR-API-KEY&type=company&linkId=google/about/').text
這將為您提供這些目標(biāo)URL的HTML代碼。
提出上述要求時,請使用您的Scrapingdog API密鑰。
現(xiàn)在,您必須使用BeautifulSoup來解析HTML。
soup=BeautifulSoup(r,’html.parser’)
l={}
u=list()
正如上述看到的那樣,公司的名稱存儲在 帶有標(biāo)簽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 替換為空字符串。
現(xiàn)在,我們將專注于提取網(wǎng)站,行業(yè),公司規(guī)模,總部(地址),類型和專業(yè)。
所有上述特性(除了公司規(guī)模)的被存儲在 類 “ ORG-頁面details__definition文本T-14 T-黑-光叔正常 ”與標(biāo)簽 DD。 我將再次使用可變湯來提取所有屬性。
allProp = soup.find_all(“dd”,{“class”:”org-page-details__definition-text t-14 t-black — light t-normal”})
現(xiàn)在,我們將一一從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
現(xiàn)在,我們將抓取 公司規(guī)模。
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
現(xiàn)在,我將按字典 l 列出 u。 然后,我們將使用熊貓創(chuàng)建一個列表u的數(shù)據(jù)框。
u.append(l)
df = pd.io.json.json_normalize(u)
現(xiàn)在,最后將我們的數(shù)據(jù)保存到CSV文件中。
df.to_csv(‘linkedin.csv’, index=False, encoding=’utf-8')
我們已經(jīng)成功抓取了Linkedin公司頁面。同樣,您也可以抓取個人資料。 抓取個人資料頁面之前,請先閱讀 文檔。
完整的代碼
from bs4 import BeautifulSoupimport requestsimport pandas as pd
r = requests.get(‘a(chǎn)pi_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)
以上就是關(guān)于如何使用Python將LinkedIn上的數(shù)據(jù)收集到CSV中的全部內(nèi)容,想了解更多關(guān)于數(shù)據(jù)收集的信息,請繼續(xù)關(guān)注中培偉業(yè)。