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.
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
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.
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()
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)
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)
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:
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:
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