需求一份五个城市数个岗位的照片信息,急

需要一份北上广深和长沙五城地的招聘信息和代码(Python-Selenium ,BOOS直聘)
职位有BI、ETL、数据挖掘、AI、人工智能、模型、数据分析等(就搜这些关键字)
每条招聘信息需要获取的字段有(排除红圈内的标签):

img


完成私我

从哪个地址爬取

这个是2021年的文章,你可以试试,不知道boss的反爬策略变没变。
http://t.csdn.cn/D52at

以下是使用 Python 和 Selenium 进行爬取北上广深和长沙五个城市的招聘信息的示例代码。这里以 BOSS 直聘网站为例:

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

# 设置 Chrome 驱动路径
driver_path = '/path/to/chromedriver'

# 初始化 Chrome WebDriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 无头模式,不显示浏览器窗口
driver = webdriver.Chrome(executable_path=driver_path, options=options)

# 设置等待时间
wait = WebDriverWait(driver, 10)

# 定义城市列表
cities = ['北京', '上海', '广州', '深圳', '长沙']

# 定义关键字列表
keywords = ['BI', 'ETL', '数据挖掘', 'AI', '人工智能', '模型', '数据分析']

# 循环遍历城市和关键字
for city in cities:
    for keyword in keywords:
        # 构造搜索 URL
        url = f'https://www.zhipin.com/c{city}/?query={keyword}'

        # 打开网页
        driver.get(url)

        # 等待搜索结果加载完成
        wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'job-list')))

        # 获取所有招聘信息列表
        job_list = driver.find_elements_by_class_name('job-primary')

        # 遍历招聘信息列表并提取字段
        for job in job_list:
            # 排除红圈内的标签
            exclude_elements = job.find_elements_by_css_selector('.info-append .red')
            for element in exclude_elements:
                driver.execute_script("arguments[0].remove()", element)

            # 提取字段
            job_title = job.find_element_by_css_selector('.job-title').text
            company_name = job.find_element_by_css_selector('.company-text .name').text
            salary = job.find_element_by_css_selector('.red').text

            # 输出结果
            print(f'城市:{city}  关键字:{keyword}')
            print(f'职位:{job_title}')
            print(f'公司:{company_name}')
            print(f'薪资:{salary}')
            print('---')

# 关闭浏览器
driver.quit()

请注意,运行此代码之前,确保已安装 Selenium 和 Chrome WebDriver,并将 driver_path 设置为你的 Chrome 驱动路径。

这段代码会遍历指定的城市和关键字,在 BOSS 直聘网站上搜索相关职位,并提取职位、公司和薪资等字段。同时,它会排除招聘信息中的红圈内的标签。

你可以根据需要自行调整代码,添加其他字段的提取或进行更复杂的数据处理。

分析思路:对于反爬比较厉害的网站,还是建议Selenium库来进行爬取.


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
 
# 设置 Chrome 驱动路径
driver_path = '/path/to/chromedriver'
 
# 初始化 Chrome WebDriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 无头模式,不显示浏览器窗口
driver = webdriver.Chrome(executable_path=driver_path, options=options)
 
# 设置等待时间
wait = WebDriverWait(driver, 10)
 
# 定义城市列表
cities = ['北京', '上海', '广州', '深圳', '长沙']
 
# 定义关键字列表
keywords = ['BI', 'ETL', '数据挖掘', 'AI', '人工智能', '模型', '数据分析']
 
# 循环遍历城市和关键字
for city in cities:
    for keyword in keywords:
        # 构造搜索 URL
        url = f'https://www.zhipin.com/c{city}/?query={keyword}'
 
        # 打开网页
        driver.get(url)
 
        # 等待搜索结果加载完成
        wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'job-list')))
 
        # 获取所有招聘信息列表
        job_list = driver.find_elements_by_class_name('job-primary')
 
        # 遍历招聘信息列表并提取字段
        for job in job_list:
            # 排除红圈内的标签
            exclude_elements = job.find_elements_by_css_selector('.info-append .red')
            for element in exclude_elements:
                driver.execute_script("arguments[0].remove()", element)
 
            # 提取字段
            job_title = job.find_element_by_css_selector('.job-title').text
            company_name = job.find_element_by_css_selector('.company-text .name').text
            salary = job.find_element_by_css_selector('.red').text
 
            # 输出结果
            print(f'城市:{city}  关键字:{keyword}')
            print(f'职位:{job_title}')
            print(f'公司:{company_name}')
            print(f'薪资:{salary}')
            print('---')
 
# 关闭浏览器
driver.quit()
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7444731
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【Python网络蜘蛛 · 9】:selenium模块【安装和配置环境变量教程、提取数据操作、无头模式】(附操作源码)
  • 以下回答来自chatgpt:

    问题:如何使用Python-Selenium来自动化获取北上广深和长沙这五个城市的招聘信息,包括BI、ETL、数据挖掘、AI、人工智能、模型和数据分析岗位的信息,并排除红圈内的标签?请提供代码。

    解决方案:

    首先,确保你已经安装好Python和相应的Selenium库。你可以使用pip命令进行安装:

    pip install selenium
    

    接下来,你需要下载Chrome浏览器驱动,以与Selenium库进行交互。你可以从Chrome浏览器官方网站下载适用于你的操作系统和浏览器版本的驱动器。确保将驱动器放置在你的系统路径或指定的路径下。

    现在,我们可以开始编写代码来自动化获取招聘信息。首先,导入需要的模块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    

    接下来,创建一个Chrome浏览器对象,并设置一些选项:

    options = Options()
    options.headless = True  # 无界面模式
    driver = webdriver.Chrome(options=options)
    wait = WebDriverWait(driver, 10)  # 设置最大等待时间为10秒
    

    然后,我们可以编写一个函数来获取招聘信息:

    def get_job_information(city, position):
        url = f'https://www.zhipin.com/c{city}/?query={position}&ka=city-pos-0'
        driver.get(url)
        try:
            # 等待页面加载完成
            wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.job-primary')))
            # 移除红圈内的标签
            driver.execute_script("document.querySelector('.job-primary .red-package-btn').remove()")
            # 获取岗位信息列表
            job_list = driver.find_elements(By.CSS_SELECTOR, '.job-primary')
            job_information = []
            for job in job_list:
                # 获取岗位信息
                job_title = job.find_element(By.CSS_SELECTOR, '.job-title').text
                company = job.find_element(By.CSS_SELECTOR, '.company-text .name').text
                salary = job.find_element(By.CSS_SELECTOR, '.red').text
                job_information.append({'Job Title': job_title, 'Company': company, 'Salary': salary})
            return job_information
        except Exception as e:
            print(f'Error: {e}')
        finally:
            driver.quit()
    

    最后,我们可以调用函数来获取各个城市不同岗位的招聘信息:

    city_list = ['北', '上', '广', '深', '长沙']
    position_list = ['BI', 'ETL', '数据挖掘', 'AI', '人工智能', '模型', '数据分析']
    
    for city in city_list:
        for position in position_list:
            job_information = get_job_information(city, position)
            print(f'{city}城市的{position}岗位招聘信息:')
            for job in job_information:
                print(job)
            print('\n')
    

    注意:以上代码仅提供了一个简单的实现示例,具体的网页元素选择器等可能需要根据实际网页的情况进行调整。

    希望这可以帮助到你!如果你有任何进一步的问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

从前程无忧网站:https://www.51job.com/上查询热点城市(北京、上海、广州、深圳、武汉、西安、杭州、南京、成都、苏州)程序员的招聘信息。要求在Excel文件中保存招聘信息(职位名、公司名、工作地点、薪资、发布时间),每个城市一工作表,统计出每个城市招聘职位总数,并按从高到低顺序排序,输出到Excel的一个工作表中,并画出各城市招聘职位数分圆饼图


from lxml import etree
import requests
import csv
temp='C:\\Users\\lenovo\\Desktop'+'\\'+'广州程序员工作'
with open(temp+'.csv','a',newline='') as f:
            csvwriter=csv.writer(f,dialect='excel')
            csvwriter.writerow(['职位','公司名称','地址','薪水','发布日期'])
headers = {
    "cache-control": "no-cache",
    "postman-token": "72a56deb-825e-3ac3-dd61-4f77c4cbb4d8",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36",
 
}
#广州程序员工作的页数
for i in range(1,12):
  #网址
    url='https://search.51job.com/list/030200,000000,0000,00,9,99,%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598,2,{}.html?'.format(i)  
    respond = requests.get(url,headers=headers)
    respond.encoding='gbk'
    respond1=respond.text
    html=etree.HTML(respond1)
    work_name=html.xpath('//div[@id="resultList"]/div[@class="el"]/p/span/a/@title')
    company_name=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t2"]/a/@title')
    work_place=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t3"]/text()')
    salary=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t4"]/text()')
    date=html.xpath('//div[@id="resultList"]/div[@class="el"]/span[@class="t5"]/text()')
    for a,b,c,d,e in zip(work_name,company_name,work_place,salary,date):
        print(a,b,c,d,e)
        with open(temp+'.csv','a',newline='') as f:
            csvwriter=csv.writer(f,dialect='excel')
            csvwriter.writerow([a,b,c,d,e])

关于python获取boss网站上的数据的问题,帮你找到以下资料,仅供参考:
python的selenuim爬虫爬取实例:https://blog.csdn.net/weixin_67485772/article/details/129407461
Python爬虫实战(8)Selenium+Boss直聘:https://www.ngui.cc/el/2899474.html?action=onClick
python使用selenium爬取boos,100%爬取成功,绕过cookie:https://blog.csdn.net/weixin_45940816/article/details/121485431

from selenium import webdriver
from selenium.webdriver.common.by import By

# 设置Chrome驱动程序的路径
driver_path = "/path/to/chromedriver"

# 设置城市列表
cities = ["北京", "上海", "广州", "深圳", "长沙"]

# 设置关键字列表
keywords = ["BI", "ETL", "数据挖掘", "AI", "人工智能", "模型", "数据分析"]

# 初始化WebDriver
driver = webdriver.Chrome(executable_path=driver_path)

# 遍历城市列表
for city in cities:
    # 遍历关键字列表
    for keyword in keywords:
        # 构造搜索URL
        url = f"https://www.zhipin.com/c{city}/?query={keyword}"
        
        # 打开搜索页面
        driver.get(url)
        
        # 获取所有招聘信息元素
        job_elements = driver.find_elements(By.CLASS_NAME, "job-primary")
        
        # 遍历招聘信息元素
        for job_element in job_elements:
            # 提取字段
            job_title = job_element.find_element(By.CLASS_NAME, "job-title").text
            company_name = job_element.find_element(By.CLASS_NAME, "company-text").text
            salary = job_element.find_element(By.CLASS_NAME, "red").text
            job_info = job_element.find_element(By.CLASS_NAME, "job-desc").text
            
            # 输出字段
            print("职位名称:", job_title)
            print("公司名称:", company_name)
            print("薪资待遇:", salary)
            print("职位信息:", job_info)
            print("-------------------")

# 关闭浏览器
driver.quit()

您想获取关于北上广深和长沙五个城市的招聘信息,并且针对BI、ETL、数据挖掘、AI、人工智能、模型和数据分析等职位进行筛选。您还提到每条招聘信息需要获取的字段(排除红圈内的标签)。

为了获取这些招聘信息,您可以使用Python和Selenium库进行网页爬取。Selenium是一个用于自动化浏览器操作的工具,可以模拟浏览器行为来进行网页数据的提取。

以下是一个示例代码,可以帮助您实现这个任务:

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

# 设置浏览器驱动路径,这里使用的是Chrome浏览器,请确保已经安装对应版本的Chrome浏览器和驱动
driver = webdriver.Chrome('path_to_chrome_driver')

# 设置待搜索的关键字列表
keywords = ['BI', 'ETL', '数据挖掘', 'AI', '人工智能', '模型', '数据分析']

# 设置待搜索的城市列表
cities = ['北京', '上海', '广州', '深圳', '长沙']

# 进行循环搜索
for city in cities:
    for keyword in keywords:
        # 构建搜索链接
        search_link = f'https://{city}.58.com/job/?key={keyword}'

        # 打开搜索链接
        driver.get(search_link)

        # 等待搜索结果加载完成
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'jobname')))

        # 获取所有招聘信息
        job_elements = driver.find_elements(By.CLASS_NAME, 'jobname')

        # 遍历每条招聘信息
        for job_element in job_elements:
            # 排除红圈内的标签
            red_circles = job_element.find_elements(By.CLASS_NAME, 'red-circle')
            if len(red_circles) > 0:
                continue

            # 获取字段信息
            job_title = job_element.text
            company_name = job_element.find_element(By.CLASS_NAME, 'compname').text
            salary = job_element.find_element(By.CLASS_NAME, 'salary').text
            job_location = job_element.find_element(By.CLASS_NAME, 'region').text

            # 输出字段信息
            print("职位:", job_title)
            print("公司:", company_name)
            print("薪资:", salary)
            print("地点:", job_location)
            print("=" * 50)

# 关闭浏览器
driver.quit()

这段代码通过设置关键字和城市列表,在58同城的招聘页面进行搜索和遍历,并使用Selenium提供的方法来提取各个字段信息。需要注意的是,代码中的'path_to_chrome_driver'需要替换为您真实的Chrome驱动路径。

希望这个示例代码对您有帮助!您想获取关于北上广深和长沙五个城市的招聘信息,并且针对BI、ETL、数据挖掘、AI、人工智能、模型和数据分析等职位进行筛选。您还提到每条招聘信息需要获取的字段(排除红圈内的标签)。

为了获取这些招聘信息,您可以使用Python和Selenium库进行网页爬取。Selenium是一个用于自动化浏览器操作的工具,可以模拟浏览器行为来进行网页数据的提取。

以下是一个示例代码,可以帮助您实现这个任务:

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

# 设置浏览器驱动路径,这里使用的是Chrome浏览器,请确保已经安装对应版本的Chrome浏览器和驱动
driver = webdriver.Chrome('path_to_chrome_driver')

# 设置待搜索的关键字列表
keywords = ['BI', 'ETL', '数据挖掘', 'AI', '人工智能', '模型', '数据分析']

# 设置待搜索的城市列表
cities = ['北京', '上海', '广州', '深圳', '长沙']

# 进行循环搜索
for city in cities:
    for keyword in keywords:
        # 构建搜索链接
        search_link = f'https://{city}.58.com/job/?key={keyword}'

        # 打开搜索链接
        driver.get(search_link)

        # 等待搜索结果加载完成
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'jobname')))

        # 获取所有招聘信息
        job_elements = driver.find_elements(By.CLASS_NAME, 'jobname')

        # 遍历每条招聘信息
        for job_element in job_elements:
            # 排除红圈内的标签
            red_circles = job_element.find_elements(By.CLASS_NAME, 'red-circle')
            if len(red_circles) > 0:
                continue

            # 获取字段信息
            job_title = job_element.text
            company_name = job_element.find_element(By.CLASS_NAME, 'compname').text
            salary = job_element.find_element(By.CLASS_NAME, 'salary').text
            job_location = job_element.find_element(By.CLASS_NAME, 'region').text

            # 输出字段信息
            print("职位:", job_title)
            print("公司:", company_name)
            print("薪资:", salary)
            print("地点:", job_location)
            print("=" * 50)

# 关闭浏览器
driver.quit()

这段代码通过设置关键字和城市列表,在58同城的招聘页面进行搜索和遍历,并使用Selenium提供的方法来提取各个字段信息。需要注意的是,代码中的'path_to_chrome_driver'需要替换为您真实的Chrome驱动路径。

希望这个示例代码对您有帮助!