招聘网站简单爬虫_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 = ''

相关推荐

  1. python 最简单网页爬虫

    2024-01-30 23:18:02       30 阅读
  2. 探索Python的魔力:构建一个简单网页爬虫

    2024-01-30 23:18:02       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 23:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 23:18:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 23:18:02       82 阅读
  4. Python语言-面向对象

    2024-01-30 23:18:02       91 阅读

热门阅读

  1. Shaastra CTF 2024

    2024-01-30 23:18:02       66 阅读
  2. Linux的中断和中断处理

    2024-01-30 23:18:02       50 阅读
  3. pgsql中with子句和直接查询差别

    2024-01-30 23:18:02       53 阅读
  4. Python爬虫库推荐

    2024-01-30 23:18:02       47 阅读
  5. LeetCode 第二十一天

    2024-01-30 23:18:02       65 阅读
  6. Compose | UI组件(十一) | Spacer - 留白

    2024-01-30 23:18:02       57 阅读
  7. GO——SELECT

    2024-01-30 23:18:02       58 阅读
  8. 【每日一题】YACS 473:栈的判断

    2024-01-30 23:18:02       58 阅读
  9. DAY34:贪心算法part、1005\134\135

    2024-01-30 23:18:02       65 阅读