Conas Sonraí ó Glassdoor a Scríobadh ag Úsáid Python

Tuairimí: 0

Tá Glassdoor ar cheann de na hardáin is fearr a sholáthraíonn réimse leathan faisnéise do dhaoine atá ag lorg post agus ar mian leo iad a fhostú, lena n -áirítear faisnéis tuarastail, athbhreithnithe fostóirí agus feidhmchláir poist. Sa treoir seo, beimid ag siúl tríd an bpróiseas chun liostaí poist a scríobadh ó Glassdoor ag baint úsáide as Python agus an drámadóir. Tá an drámadóir riachtanach anseo mar go bhfostaíonn Glassdoor bearta láidre frith-bot, ar féidir leo leabharlanna traidisiúnta a bhratach agus a bhlocáil. Le drámadóir, is féidir linn fíor -bhrabhsálaí a ionsamhlú agus proxies a chur san áireamh, ag cuidiú linn na córais braite seo a sheachbhóthar.

Mar gheall ar mheicníochtaí láidre frith-scrapála Glassdoor, is féidir le hiarratais dhíreacha le leabharlanna cosúil le hiarratais dúshláin blocáil IP nó dúshláin Captcha a bheith mar thoradh orthu. Ligeann drámadóir dúinn brabhsálaí a uathoibriú, rud a fhágann go bhfuil ár n-idirghníomhaíochtaí níos cosúla le daonna. Trí sheachvótálaithe agus ceanntásca brabhsálaí a chur leis, is féidir linn a bhrath a sheachaint a thuilleadh.

Riachtanas

Chun tús a chur leis, beidh ort drámadóir agus leabharlann LXML a shuiteáil le haghaidh parsáil HTML. Is féidir leat iad a shuiteáil mar seo a leanas:


pip install playwright lxml
playwright install

Liostaí Poist Glassdoor a Scrapáil

Beimid ag siúl trí gach céim, ón leathanach a luchtú le drámadóir chun sonraí poist a bhaint amach agus na sonraí a shábháil i gcomhad CSV.

Céim 1. An brabhsálaí a chur ar bun agus iarratais a dhéanamh

Ar an gcéad dul síos, cuir drámadóir ar bun le seachvótálaí chun ceangal le Glassdoor. Cuidíonn sé seo le cosc ​​a chur ar chosc a chur ar an mbrabhsálaí amhail is dá mbeadh fíor -úsáideoir ag tabhairt cuairte ar an suíomh.


from playwright.async_api import async_playwright
from lxml.html import fromstring

async def scrape_job_listings():
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=False,
            proxy={"server": '', 'username': '', 'password': ''}
        )
        page = await browser.new_page()
        await page.goto('https link', timeout=60000)
        content = await page.content()
        await browser.close()
        return content

# Glaoigh ar an bhfeidhm chun ábhar an leathanaigh a aisghabháil
html_content = await scrape_job_listings()

Céim 2. An HTML a pharsáil agus sonraí a bhaint amach

Tar éis an leathanach a luchtú, bain úsáid as LXML chun an t -ábhar HTML a pharsáil agus chun faisnéis ábhartha poist a bhaint as. Seo an chaoi le teideal an phoist, an suíomh, an tuarastal, agus na sonraí eile a pharsáil do gach liosta post:


parser = fromstring(html_content)
job_posting_elements = parser.xpath('//li[@data-test="jobListing"]')

jobs_data = []
for element in job_posting_elements:
    job_title = element.xpath('.//a[@data-test="job-title"]/text()')[0]
    job_location = element.xpath('.//div[@data-test="emp-location"]/text()')[0]
    salary = ' '.join(element.xpath('.//div[@data-test="detailSalary"]/text()')).strip()
    job_link = element.xpath('.//a[@data-test="job-title"]/@href')[0]
    easy_apply = bool(element.xpath('.//div[@data-role-variant="featured"]'))
    company = element.xpath('.//span[@class="EmployerProfile_compactEmployerName__LE242"]/text()')[0]
    
    job_data = {
        'company': company,
        'job_title': job_title,
        'job_location': job_location,
        'job_link': job_link,
        'salary': salary,
        'easy_apply': easy_apply
    }
    jobs_data.append(job_data)

Céim 3. Sonraí a shábháil ar chomhad CSV

Nuair a bheidh na sonraí poist bainte amach againn, is féidir linn iad a shábháil i gcomhad CSV chun anailís a dhéanamh ar shonraí éasca.


import csv

with open('glassdoor_job_listings.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.DictWriter(file, fieldnames=['company', 'job_title', 'job_location', 'job_link', 'salary', 'easy_apply'])
    writer.writeheader()
    writer.writerows(jobs_data)

Cód Comhlánaithe


import csv
from playwright.async_api import async_playwright
from lxml.html import fromstring

async def scrape_job_listings():
    # Socraigh an brabhsálaí drámadóra le seachvótálaí chun braite a sheachaint
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=False,
            proxy={"server": '', 'username': '', 'password': ''}
        )
        page = await browser.new_page()
        await page.goto('https://www.glassdoor.com/Job/united-states-software-engineer-jobs-SRCH_IL.0,13_IN1_KO14,31.htm', timeout=60000)
        
        # Faigh ábhar an leathanaigh agus dún an brabhsálaí
        content = await page.content()
        await browser.close()
        
        # Parse an t -ábhar le LXML
        parser = fromstring(content)
        job_posting_elements = parser.xpath('//li[@data-test="jobListing"]')
        
        # Sonraí a bhaint as gach liostáil poist
        jobs_data = []
        for element in job_posting_elements:
            job_title = element.xpath('.//a[@data-test="job-title"]/text()')[0]
            job_location = element.xpath('.//div[@data-test="emp-location"]/text()')[0]
            salary = ' '.join(element.xpath('.//div[@data-test="detailSalary"]/text()')).strip()
            job_link = "https://www.glassdoor.com" + element.xpath('.//a[@data-test="job-title"]/@href')[0]
            easy_apply = bool(element.xpath('.//div[@data-role-variant="featured"]'))
            company = element.xpath('.//span[@class="EmployerProfile_compactEmployerName__LE242"]/text()')[0]
            
            job_data = {
                'company': company,
                'job_title': job_title,
                'job_location': job_location,
                'job_link': job_link,
                'salary': salary,
                'easy_apply': easy_apply
            }
            jobs_data.append(job_data)
    
        # Sábháil na sonraí chuig comhad CSV
        with open('glassdoor_job_listings.csv', 'w', newline='', encoding='utf-8') as file:
            writer = csv.DictWriter(file, fieldnames=['company', 'job_title', 'job_location', 'job_link', 'salary', 'easy_apply'])
            writer.writeheader()
            writer.writerows(jobs_data)

# Rith an fheidhm scríobtha
import asyncio
asyncio.run(scrape_job_listings())

Míniú ar an gcód iomlán:

  1. Socrú Brabhsálaí le Proxy: Cuireann an cód tús le seisiún brabhsálaí le drámadóir, ag ionchorprú seachvótálaí chun iompraíocht brabhsála daonna a aithris. Cuireann an suíomh gan cháim = an suíomh bréagach ar chumas an fhuinneog brabhsálaí fanacht oscailte, rud a fhéadann cabhrú le braite bot a sheachbhóthar.
  2. Nascleanúint a dhéanamh ar an Leathanach Liostaí Poist: Tugann an script cuairt ar URL liostaí poist Glassdoor do phoist innealtóireachta bogearraí sna Stáit Aontaithe.
  3. An t -ábhar a pharsáil: Baintear na sonraí poist ag baint úsáide as LXML le haghaidh parsáil HTML. Gabhfaimid teideal an phoist, an suíomh, an tuarastal, an nasc poist, ainm na cuideachta, agus más post éasca é.
  4. Sábháil le CSV: Tar éis na sonraí go léir a bhaint amach, sábhálann an script é chuig comhad CSV, GlassDoor_Job_Listings.csv, le colúin do gach tréith.

Téarmaí Seirbhíse Glassdoor a urramú

Nuair a scríobann tú Glassdoor nó aon láithreán gréasáin eile, tá sé riachtanach cleachtais scríobtha fhreagracha a leanúint:

  • Meas a bheith ar theorainneacha ráta: Seachain an freastalaí thar a bheith mór trí mhoilleanna a chur i bhfeidhm idir iarratais.
  • Bain úsáid as seachvótálaithe rothlacha: Íoslaghdaigh an baol go gcuirfear cosc ​​ar sheachvótálaithe agus ar IPanna rothlacha.
  • Cloí le Téarmaí Seirbhíse: Déan athbhreithniú rialta ar théarmaí seirbhíse an tsuímh ghréasáin agus seachain gníomhartha a sháraíonn iad.

Nuair a bhíonn a fhios agat conas sonraí Glassdoor a scrape ag baint úsáide as Python agus drámadóir, cuirfidh tú go héasca le do chumas liostaí poist a bhailiú. Tá an teicníc seo, nuair a chuirtear in éineacht le húsáid proxies agus ceanntásca cuí, éifeachtach chun deireadh a chur leis an mbaol go gcuirfidh Glassdoor bac air. Ní mór duit a thabhairt faoi deara freisin go bhfuil beartais scríobtha eiticiúla ann chun cosc ​​a chur ar fhreastalaithe Glassdoor a chosc. Trí bheith ag coinneáil leis na bearta seo, is féidir leat a bhaint anois chomh maith le faisnéis fostaíochta úsáideach a phróiseáil ó Glassdoor le haghaidh do úsáid féin nó do chuideachta.

Tuairimí:

0 tuairimí