我們了解了如何使用代理刮擦器 和 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中的全部內容,想了解更多關于數據收集的信息,請繼續關注中培偉業。