招聘网站简单爬虫_24.1.26

完整程序传送门

24.1.26

前些天接了一个大两届的师兄的小活,做了一下爬boss直聘岗位信息的程序,在这里记录一下

程序框架

定义一个名为paQu的接口函数,用于检查窗口的输入,它接受一个参数self,获取self对象的a属性(可能是一个变量或对象),并将其赋值给变量b,检查变量b是否为空,如果为空,则返回,不执行任何操作。再次获取self对象的a属性,并将其赋值给变量b。如果b不为空,则递归调用paQufun函数,并将b作为参数传递。

主要功能是从招聘网站上所需求的爬取职位信息,并将这些信息保存到一个CSV文件中。思路是使用Python的Selenium库模拟浏览器操作,访问招聘网站,输入所search的职位,获取职位信息,并将这些信息保存到一个CSV文件中。代码如下:

复制代码
def paQufun(a):
    f = open('./data/' + a + '.csv', mode='a', encoding='utf-8', newline='')
    data = csv.DictWriter(f, fieldnames=['招聘职业', '地区', '公司', '薪资', '工作经验要求', '学历要求', '工作介绍', '公司福利', '详情页'])
    data.writeheader()

    driver = webdriver.Chrome()
    # driver.get('https://sou.zhaopin.com/?jl=763&kw=%E5%89%8D%E7%AB%AF')
    '''
    city接城市后编码
    business接区编码,可不加
    '''
    driver.get('https://www.zhipin.com/web/geek/job?query=&city=101270100&areaBusiness=510108')
    # 隐式等待
    driver.implicitly_wait(50)
    find = driver.find_element('css selector', ' .search-input-box .input')
    driver.find_element('css selector', ' .search-input-box .input').send_keys(a)

    driver.implicitly_wait(50)
    driver.find_element('css selector', '.search-btn').click()
    # css选择器直接定位元素
    lists = driver.find_elements('css selector', '.search-job-result li.job-card-wrapper')
    for li in lists:
            job = li.find_element('css selector', ' .job-name').text
            area = li.find_element('css selector', ' .job-area').text
            company = li.find_element('css selector', ' .company-name').text
            salary = li.find_element('css selector', ' .salary').text
            
            yao = li.find_element('css selector', ' .job-info.clearfix .tag-list').text
            lines = yao.split("\n")
            line1 = lines[0]
            line2 = lines[1]
            
            jie = li.find_element('css selector', ' .job-card-footer.clearfix  .info-desc').text
            fuLi = li.find_element('css selector', '  .job-card-footer.clearfix  .tag-list').text
            href = li.find_element('css selector', '  .job-card-left').get_attribute('href')
            dit = {
                '招聘职业': job,
                '地区': area,
                '公司': company,
                '薪资': salary,
                '工作经验要求': line1,
                '学历要求': line2,
                '工作介绍': jie,
                '公司福利': fuLi,
                '详情页': href,
            }
            data.writerow(dit)

            print(job, area, company)
            print(salary, line1, line2, jie, fuLi, href)
            print('\n')

1、修改URL:请将代码中的URL替换为您要爬取的城市对应的URL。例如,如果需要爬取上海的前端职位,可以将URL修改为:

复制代码
driver.get('https://www.zhipin.com/web/geek/job?query=&city=101270100&areaBusiness=510108')

2、避免被ban:在爬取过程中,为避免被网站ban,请使用代理IP或设置隐式等待时间。在代码中,使用了隐式等待时间,可根据需要修改为代理IP。

3、异常处理:在爬取过程中,请确保进行异常处理,以防止程序在遇到错误时崩溃。例如:

复制代码
try:
    job = li.find_element('css selector', ' .job-name').text
except NoSuchElementException:
    job = ''
相关推荐
深蓝电商API2 天前
从爬虫到Agent:数据采集的下一个形态是什么
爬虫
xiangjiaodalishi2 天前
主流 AI 爬虫 User-Agent 清单大全:分组、配置与持续维护(2026 版)
人工智能·爬虫·python
深蓝电商API3 天前
用向量数据库存储爬取内容:语义检索的高级玩法
爬虫·向量数据库
深蓝电商API3 天前
Playwright+多模态大模型:让AI自己“看”页面并决策
人工智能·爬虫·playwright
远航计算机3 天前
收录从分钟级变 3 到 7 天,抢首发为什么失效了
大数据·人工智能·爬虫·chatgpt·aigc·1024程序员节
嫂子的姐夫4 天前
052-滑块验证码:丰巢登录
爬虫·js逆向·滑块验证码·aes加密
东鹏特饮4 天前
A 股创历史新低筛选器phthon爬虫脚本
爬虫·股票·phthon
深蓝电商API6 天前
用GPT-4o解析无结构网页:提示词工程实战
爬虫·gpt-4o
数据狐(Datafox)7 天前
一文读懂京东商品详情 API:返回字段解读与 JSON 样例
开发语言·数据库·爬虫·json
傻啦嘿哟7 天前
百度图片爬虫:爬取海量图片数据,搭建图像识别训练集
爬虫·百度