2024爬虫 用selenium 爬取 51job(前程无忧)代码
以下是一个使用Selenium和PhantomJS(一个无头浏览器)爬取51job(前程无忧)网站的示例代码。请确保你已经安装了Selenium库和对应的WebDriver(这里使用的是PhantomJS,但请注意PhantomJS已经停止开发,建议使用Chrome或Firefox的WebDriver)。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 初始化WebDriver
driver_path = 'path/to/phantomjs' # PhantomJS的路径
driver = webdriver.PhantomJS(executable_path=driver_path)
# 目标网址
url = 'http://www.51job.com'
try:
# 打开网址
driver.get(url)
# 等待网页加载
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.ID, 'resultList')))
# 获取职位信息
jobs = driver.find_elements_by_css_selector('.el.job-list li a')
for job in jobs:
# 获取职位名称和公司名称
job_name = job.find_element_by_css_selector('.job-title').text
company_name = job.find_element_by_css_selector('.company-name').text
print(f'Job Name: {job_name}, Company Name: {company_name}')
# 可以在这里添加代码来获取更多的信息,例如工资、职位描述等
# 可以点击每个职位链接获取更多详细信息
# job.click()
# 解析职位详细信息...
# time.sleep(1) # 等待页面加载,避免数据未完全加载而造成的错误
# 返回上一页
# driver.execute_script("window.history.go(-1)")
finally:
# 关闭浏览器
driver.quit()
请注意,由于51job网站可能会更新其页面结构,因此CSS选择器和XPath可能需要根据实际情况进行调整。此外,爬取过程中还需遵守网站的robots.txt协议和法律法规,不得滥用。
评论已关闭