Treoir maidir le Scrapáil Sonraí LinkedIn le Python

Tuairimí: 0

Is féidir le scríobadh sonraí LinkedIn a bheith thar a bheith luachmhar ar chúiseanna éagsúla:

  • Anailís ar an Margadh Poist: Déan anailís ar threochtaí i liostaí poist, mar shampla na scileanna agus na tionscail is mó éileamh;
  • Earcaíocht: Bailigh sonraí maidir le postálacha poist chun straitéisí fruilithe a threorú;
  • Taighde iomaitheora: Monatóireacht a dhéanamh ar phatrúin agus straitéisí iomaitheoirí a fhostú.

Leagfaidh an t -alt béim ar theicnící agus ar straitéisí tábhachtacha, lena n -áirítear an tábhacht a bhaineann le braite a sheachaint trí sheachvótálaithe agus ceanntásca sa chéad áit. Bainfear úsáid as an leabharlann iarratais chun iarratais HTTP a dhéanamh agus úsáidfear LXML chun ábhar HTML a pharsáil.

An timpeallacht a chur ar bun

Sula dtosaíonn tú, déan cinnte go bhfuil python suiteáilte agat ar do mheaisín.

Suiteáil na leabharlanna riachtanacha ag baint úsáide as PIP:


pip install requests
pip install lxml

Ag tosú leis an scraper

Seo sampla cuimsitheach cód chun liostaí poist LinkedIn a scríobadh ag úsáid Python:

Leabharlanna Iompórtála

Teastaíonn roinnt leabharlanna Python uainn:

  • Iarrataí: Chun iarratais HTTP a dhéanamh chun leathanaigh ghréasáin a aisghabháil.
  • LXML: Chun ábhar HTML a pharsáil.
  • CSV: Chun na sonraí eastósctha a scríobh chuig comhad CSV.

import requests
from lxml import html
import csv
import random

Sainmhínigh url cuardaigh poist

Tosaigh trí URL cuardaigh poist LinkedIn a shainiú ar mhaith leat a scrape.


url = 'https link'

Teaghráin agus seachvótálaithe gníomhaire úsáideora

Le scrape LinkedIn go héifeachtach, tá sé ríthábhachtach na ceanntásca cearta a úsáid, go háirithe an ceanntásc gníomhaire úsáideora, chun iarratais ó bhrabhsálaí iarbhír a aithris.


user_agents = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
]

Is minic a thacaíonn soláthraithe seachvótálaí an lae inniu le rothlú inmheánach, rud a chiallaíonn go n-rothlaíonn siad seoltaí IP go huathoibríoch duit. Cuireann sé seo deireadh leis an ngá le seachvótálaithe a roghnú de láimh ó liosta. Mar sin féin, chun críocha léirithe, is é seo an dóigh a láimhseálfá uainíocht seachfhreastalaí más gá:


proxies = {
    'http': random.choice(proxies),
    'https': random.choice(proxies)
}

Ceanntásca le haghaidh Iarrataí

Scríobhann LinkedIn rathúil insí ar an socrú ceart ceanntásca a dhéanann aithris ar iompar fíor -bhrabhsálaí. Ní hamháin go gcabhraíonn ceanntásca cumraithe go cuí le dul timpeall ar chórais chosanta frith-bot ach laghdaítear an seans go gcuirfí bac ar do chuid gníomhaíochtaí scríobtha.


headers = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'en-IN,en;q=0.9',
    'dnt': '1',
    'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
}

Tús a chur le stóráil sonraí

Chun faisnéis poist a bhailiú agus a stóráil go héifeachtach, ba chóir duit tosú trí siopa sonraí a thúsú. I Python, is iondúil go gcruthaítear liosta folamh de ghnáth. Feidhmeoidh an liosta seo mar choimeádán stórála áit ar féidir leat sonraí poist a chur leis mar go mbaintear iad as an ábhar HTML. Cinntíonn an modh seo go mbailítear an fhaisnéis go córasach agus go bhfuil sé inrochtana go héasca le haghaidh tuilleadh próiseála nó anailíse.

job_details = []

An t -ábhar HTML a pharsáil

Tar éis iarratas HTTP GET a sheoladh, is é an chéad chéim eile an t -ábhar HTML a pharsáil ag baint úsáide as leabharlann LXML. Cuirfidh sé seo ar ár gcumas nascleanúint a dhéanamh tríd an struchtúr HTML agus na sonraí a theastaíonn uainn a bhaint.


# Socraigh gníomhaire randamach úsáideora agus seachvótálaí le modh údaraithe IP
headers['user-agent'] = random.choice(user_agents)
proxies = {
    'http': IP:PORT,
    'https': IP:PORT
}

# Seol iarratas http Get chuig an URL
response = requests.get(url=url, headers=headers, proxies=proxies)
parser = html.fromstring(response.content)

Sonraí poist a bhaint as

Nuair a dhéantar an t -ábhar HTML a pharsáil, is féidir linn sonraí poist ar leith a bhaint amach mar theideal, ainm na cuideachta, suíomh, agus URL poist ag baint úsáide as ceisteanna XPath. Stóráiltear na sonraí seo i bhfoclóir agus cuirtear i gceangal le liosta iad.


# Sliocht Sonraí Poist ón Ábhar HTML
for job in parser.xpath('//ul[@class="jobs-search__results-list"]/li'):
    title = ''.join(job.xpath('.//div/a/span/text()')).strip()
    company = ''.join(job.xpath('.//div/div[2]/h4/a/text()')).strip()
    location = ''.join(job.xpath('.//div/div[2]/div/span/text()')).strip()
    job_url = job.xpath('.//div/a/@href')[0]
    
    job_detail = {
        'title': title,
        'company': company,
        'location': location,
        'job_url': job_url
    }
    job_details.append(job_detail)

Sábháil sonraí chuig CSV

Tar éis na sonraí poist a bhailiú, sábháil é chuig comhad CSV.


with open('linkedin_jobs.csv', 'w', newline='', encoding='utf-8') as csvfile:
    fieldnames = ['title', 'company', 'location', 'job_url']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for job_detail in job_details:
        writer.writerow(job_detail)

Cód iomlán

Seo an cód iomlán, ag comhcheangal na rannóga go léir thuas:


from selenium.webdriver.chrome.options import Options
from seleniumwire import webdriver as wiredriver
from selenium.webdriver.common.by import By
import csv

# Sonraigh an seoladh seachfhreastalaí le hainm úsáideora agus pasfhocal
proxy_address = ""
proxy_username = ""
proxy_password = ""

# Roghanna Chrome a chur ar bun leis an seachvótálaí agus an fíordheimhniú
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')

# Cruthaigh cás Webdriver le sreangán seiléiniam
driver = wiredriver.Chrome(options=chrome_options)

url = 'https link'

# Déan do uathoibriú seiléiniam le cumais fheabhsaithe na seiléiniam-sreang
driver.get(url)

job_details = []

all_elements = driver.find_elements(By.XPATH,
                                   '//*[@id="main-content"]/section/ul/li')

for i in all_elements:
   title = i.find_element(By.XPATH,
                          './/div/div/h3').text
   company = i.find_element(By.XPATH, './/div/div[2]/h4/a').text
   location = i.find_element(By.XPATH, './/div/div[2]/div/span').text
   job_url = i.find_element(By.XPATH,
                            './/div/a').get_attribute('href')

   job_detail = {
       'title': title,
       'company': company,
       'location': location,
       'job_url': job_url
   }
   job_details.append(job_detail)

with open('linkedin_jobs.csv', 'w', newline='', encoding='utf-8') as csvfile:
   fieldnames = ['title', 'company', 'location', 'job_url']
   writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
   writer.writeheader()
   for job_detail in job_details:
       writer.writerow(job_detail)

driver.quit()

Tugann sonraí a bhaint as LinkedIn ag baint úsáide as Python leis na hiarratais agus leabharlanna LXML bealach cumhachtach chun anailís a dhéanamh ar an margadh fostaíochta agus ar phearsanra earcaíochta. Chun próiseas scríobtha réidh a chinntiú, baintear úsáid as seachvótálaithe Datacenter le luas ard, chomh maith le seachvótálaithe ISP le fachtóir iontaobhais níos airde, a laghdaíonn an baol bloic ar ghníomhartha uathoibrithe.

Tuairimí:

0 tuairimí