ホームページ > バックエンド開発 > Python チュートリアル > 悪質なケース分析: LinkedIn で企業情報をクロールする方法

悪質なケース分析: LinkedIn で企業情報をクロールする方法

王林
リリース: 2023-06-23 10:04:40
オリジナル
1961 人が閲覧しました

Scrapy は、インターネット上の関連情報を迅速かつ簡単に取得できる Python ベースのクローラー フレームワークです。この記事では、Scrapy のケースを使用して、LinkedIn で企業情報をクロールする方法を詳細に分析します。

  1. ターゲット URL を決定する

まず、ターゲットが LinkedIn 上の企業情報であることを明確にする必要があります。したがって、LinkedIn の企業情報ページの URL を見つける必要があります。 LinkedIn Web サイトを開き、検索ボックスに会社名を入力し、ドロップダウン ボックスで「会社」オプションを選択して会社紹介ページに入ります。このページでは会社の基本情報や従業員数、関連会社などの情報をご覧いただけます。この時点で、後で使用するためにブラウザの開発者ツールからページの 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 と解析関数のみを定義しており、クローラーの特定の実装は追加していません。次に、LinkedIn の企業情報を取得して処理するための解析関数を作成する必要があります。

  1. 解析関数の作成

解析関数では、LinkedIn 企業情報を取得して処理するコードを記述する必要があります。 XPath または CSS セレクターを使用して HTML コードを解析できます。 LinkedIn 企業情報ページの基本情報は、次の XPath を使用して抽出できます。

//*[@class="org-top-card-module__name ember-view"]/text()
ログイン後にコピー

この XPath は、クラス「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 roll company

このコマンドを実行すると、Scrapy は LinkedIn 企業情報ページのデータのクロールと処理を開始し、クロール結果を出力します。 。

概要

上記は、Scrapy を使用して LinkedIn 企業情報をクロールする方法です。 Scrapy フレームワークの助けを借りて、大規模なデータ スクレイピングを簡単に実行できると同時に、データの処理と変換ができるため、時間とエネルギーが節約され、データ収集効率が向上します。

以上が悪質なケース分析: LinkedIn で企業情報をクロールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート