Scrapy案例解析:如何抓取LinkedIn上公司訊息

王林
發布: 2023-06-23 10:04:40
原創
1833 人瀏覽過

Scrapy是一個基於Python的爬蟲框架,可以快速且方便地取得網路上的相關資訊。在本篇文章中,我們將透過Scrapy案例來詳細解析如何抓取LinkedIn上的公司資訊。

  1. 確定目標URL

首先,我們需要明確我們的目標是LinkedIn上的公司資訊。因此,我們需要找到LinkedIn公司資訊頁面的URL。開啟LinkedIn網站,在搜尋框中輸入公司名稱,在下拉方塊中選擇「公司」選項,即可進入至公司介紹頁面。在此頁面上,我們可以看到該公司的基本資訊、員工人數、關聯公司等資訊。此時,我們需要從瀏覽器的開發者工具中取得該頁面的URL,以便後續使用。這個URL的結構為:

https://www.linkedin.com/search/results/companies/?keywords=xxx

其中,keywords=xxx代表我們搜尋的關鍵字, xxx可以替換成任何公司名稱。

  1. 建立Scrapy專案

接下來,我們需要建立一個Scrapy專案。在命令列輸入以下指令:

scrapy startproject linkedin

該指令將會在目前目錄下建立一個名為linkedin的Scrapy專案。

  1. 建立爬蟲

建立專案後,在專案根目錄下輸入下列指令來建立新的爬蟲:

scrapy genspider company_spider www. linkedin.com

這將會建立一個名為company_spider的爬蟲,並將其定位到Linkedin公司頁面。

  1. 配置Scrapy

在Spider中,我們需要配置一些基本信息,例如要抓取的URL,以及如何解析頁面中的資料等。在剛才建立的company_spider.py檔案中加入以下程式碼:

import scrapy

class CompanySpider(scrapy.Spider):
    name = "company"
    allowed_domains = ["linkedin.com"]
    start_urls = [
        "https://www.linkedin.com/search/results/companies/?keywords=apple"
    ]

    def parse(self, response):
        pass
登入後複製

在上述程式碼中,我們定義了要抓取的網站URL和解析函數。在上述程式碼中,我們只定義了要抓取的網站URL和解析函數,還沒有加入爬蟲的具體實作。現在我們需要編寫parse函數來實現LinkedIn公司資訊的抓取和處理。

  1. 編寫解析函數

在parse函數中,我們需要編寫抓取和處理LinkedIn公司資訊的程式碼。我們可以使用XPath或CSS選擇器來解析HTML程式碼。 LinkedIn公司資訊頁面中的基本資訊可以使用以下XPath來提取:

//*[@class="org-top-card-module__name ember-view"]/text()
登入後複製

該XPath將選取class為「org-top-card-module__name ember-view」的元素,並傳回它的文字值。

以下是完整的company_spider.py檔案:

import scrapy

class CompanySpider(scrapy.Spider):
    name = "company"
    allowed_domains = ["linkedin.com"]
    start_urls = [
        "https://www.linkedin.com/search/results/companies/?keywords=apple"
    ]

    def parse(self, response):
        # 获取公司名称
        company_name = response.xpath('//*[@class="org-top-card-module__name ember-view"]/text()')
        
        # 获取公司简介
        company_summary = response.css('.org-top-card-summary__description::text').extract_first().strip()
        
        # 获取公司分类标签
        company_tags = response.css('.org-top-card-category-list__top-card-category::text').extract()
        company_tags = ','.join(company_tags)

        # 获取公司员工信息
        employees_section = response.xpath('//*[@class="org-company-employees-snackbar__details-info"]')
        employees_current = employees_section.xpath('.//li[1]/span/text()').extract_first()
        employees_past = employees_section.xpath('.//li[2]/span/text()').extract_first()

        # 数据处理
        company_name = company_name.extract_first()
        company_summary = company_summary if company_summary else "N/A"
        company_tags = company_tags if company_tags else "N/A"
        employees_current = employees_current if employees_current else "N/A"
        employees_past = employees_past if employees_past else "N/A"

        # 输出抓取结果
        print('Company Name: ', company_name)
        print('Company Summary: ', company_summary)
        print('Company Tags: ', company_tags)
        print('
Employee Information
Current: ', employees_current)
        print('Past: ', employees_past)
登入後複製

上述程式碼中,我們使用了XPath和CSS選擇器來提取頁面中的基本資訊、公司簡介、標籤和員工信息,並對它們進行了一些基本的數據處理和輸出。

  1. 運行Scrapy

現在,我們已經完成了對LinkedIn公司資訊頁面的抓取和處理。接下來,我們需要運行Scrapy來執行該爬蟲。在命令列中輸入以下命令:

scrapy crawl company

執行該命令後,Scrapy將會開始抓取並處理LinkedIn公司資訊頁面中的數據,並輸出抓取結果。

總結

以上就是使用Scrapy抓取LinkedIn公司資訊的方法。在Scrapy框架的幫助下,我們可以輕鬆地進行大規模的數據抓取,同時還能夠處理和轉換數據,節省我們的時間和精力,提高數據收集效率。

以上是Scrapy案例解析:如何抓取LinkedIn上公司訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!