Scrapy ialah rangka kerja perangkak berasaskan Python yang boleh mendapatkan maklumat berkaitan dengan cepat dan mudah di Internet. Dalam artikel ini, kami akan menggunakan kes Scrapy untuk menganalisis secara terperinci cara merangkak maklumat syarikat di LinkedIn.
Pertama sekali, kami perlu menjelaskan dengan jelas bahawa sasaran kami ialah maklumat syarikat di LinkedIn. Oleh itu, kita perlu mencari URL halaman maklumat syarikat LinkedIn. Buka tapak web LinkedIn, masukkan nama syarikat dalam kotak carian, dan pilih pilihan "Syarikat" dalam kotak lungsur untuk memasuki halaman pengenalan syarikat. Pada halaman ini, kita boleh melihat maklumat asas syarikat, bilangan pekerja, syarikat gabungan dan maklumat lain. Pada ketika ini, kita perlu mendapatkan URL halaman daripada alat pembangun penyemak imbas untuk kegunaan seterusnya. Struktur URL ini ialah:
https://www.linkedin.com/search/results/companies/?keywords=xxx
Antaranya, keywords=xxx mewakili kata kunci yang kami cari kerana, xxx boleh digantikan dengan mana-mana nama syarikat.
Seterusnya, kita perlu mencipta projek Scrapy. Masukkan arahan berikut pada baris arahan:
scrapy startproject linkedin
Arahan ini akan mencipta projek Scrapy bernama linkedin dalam direktori semasa.
Selepas mencipta projek, masukkan arahan berikut dalam direktori akar projek untuk mencipta perangkak baharu:
scrapy genspider company_spider www. linkedin.com
Ini akan mencipta labah-labah bernama company_spider dan menyasarkannya ke halaman syarikat Linkedin.
Dalam Spider, kita perlu mengkonfigurasi beberapa maklumat asas, seperti URL yang hendak dirangkak dan cara menghuraikan data dalam halaman. Tambahkan kod berikut pada fail company_spider.py yang baru anda buat:
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
Dalam kod di atas, kami mentakrifkan URL tapak untuk dirangkak dan fungsi penghuraian. Dalam kod di atas, kami hanya mentakrifkan URL tapak untuk dirangkak dan fungsi penghuraian, dan tidak menambah pelaksanaan khusus perangkak itu. Sekarang kita perlu menulis fungsi parse untuk menangkap dan memproses maklumat syarikat LinkedIn.
Dalam fungsi parse, kita perlu menulis kod untuk menangkap dan memproses maklumat syarikat LinkedIn. Kita boleh menggunakan pemilih XPath atau CSS untuk menghuraikan kod HTML. Maklumat asas dalam halaman maklumat syarikat LinkedIn boleh diekstrak menggunakan XPath berikut:
//*[@class="org-top-card-module__name ember-view"]/text()
Xpath ini akan memilih elemen dengan kelas "org-top-card-module__name ember-view" dan mengembalikan nilai teksnya.
Berikut ialah fail company_spider.py yang lengkap:
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)
Dalam kod di atas, kami menggunakan pemilih XPath dan CSS untuk mengekstrak maklumat asas, profil syarikat, teg dan maklumat pekerja daripada halaman, Dan melakukan beberapa pemprosesan data asas dan output pada mereka.
Kini, kami telah menyelesaikan merangkak dan memproses halaman maklumat syarikat LinkedIn. Seterusnya, kita perlu menjalankan Scrapy untuk melaksanakan perangkak. Masukkan arahan berikut dalam baris arahan:
scrapy crawl company
Selepas melaksanakan arahan ini, Scrapy akan mula merangkak dan memproses data dalam halaman maklumat syarikat LinkedIn dan mengeluarkan hasil crawl .
Ringkasan
Di atas ialah cara menggunakan Scrapy untuk merangkak maklumat syarikat LinkedIn. Dengan bantuan rangka kerja Scrapy, kami boleh menjalankan pengikisan data berskala besar dengan mudah, dan pada masa yang sama dapat memproses dan mengubah data, menjimatkan masa dan tenaga kami serta meningkatkan kecekapan pengumpulan data.
Atas ialah kandungan terperinci Analisis kes buruk: Cara merangkak maklumat syarikat di LinkedIn. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!