Python爬虫小例子——爬取51job发布的工作职位

Python爬虫小例子——爬取51job发布的工作职位

本文将介绍如何使用Python爬虫爬取51job发布的工作职位,并提供两个示例。

爬取51job发布的工作职位

51job是国内知名的招聘网站,提供了大量的工作职位信息。我们可以使用Python爬虫爬取51job发布的工作职位,并将其保存到本地文件中。下面是爬取51job发布的工作职位的步骤:

1. 分析网页结构

首先,我们需要分析51job网页的结构,确定需要爬取的信息。打开51job网站,搜索关键词,如“Python开发工程师”,然后按照要求筛选,如“工作经验1-3年”,“学历本科”,“公司性质不限”,“公司规模不限”,“发布时间最近一个月”,最后点击搜索按钮。

在搜索结果页面中,我们可以看到每个工作职位的信息,包括职位名称、公司名称、工作地点、薪资、发布时间等。我们需要爬取的信息包括职位名称、公司名称、工作地点、薪资和发布时间。

2. 编写爬虫代码

在分析完网页结构后,我们可以编写Python爬虫代码来爬取51job发布的工作职位。下面是一个爬取51job发布的工作职位的示例:

import requests
from bs4 import BeautifulSoup

url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Python,2,1.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

job_list = soup.find_all('div', class_='el')

for job in job_list:
    job_name = job.find('a', target='_blank').text.strip()
    company_name = job.find('span', class_='t2').text.strip()
    location = job.find('span', class_='t3').text.strip()
    salary = job.find('span', class_='t4').text.strip()
    publish_time = job.find('span', class_='t5').text.strip()

    print(job_name, company_name, location, salary, publish_time)

在上面的代码中,我们首先导入requests库和BeautifulSoup库,然后定义一个URL和请求头headers。接着,我们使用requests库的get()方法发送HTTP请求,并将响应保存在response变量中。最后,我们使用BeautifulSoup库解析HTML文档,并使用find_all()方法查找所有工作职位的信息。最后,我们使用for循环遍历每个工作职位的信息,并使用find()方法查找职位名称、公司名称、工作地点、薪资和发布时间。

3. 运行爬虫代码

在编写完爬虫代码后,我们可以使用Python解释器运行代码,并查看爬取的结果。下面是一个运行爬虫代码的示例:

python job_spider.py

在上面的代码中,我们使用Python解释器运行job_spider.py文件,并查看爬取的结果。

示例

下面是两个爬取51job发布的工作职位的示例:

示例一:爬取Python开发工程师工作职位

我们可以使用Python爬虫爬取51job发布的Python开发工程师工作职位,并将其保存到本地文件中。下面是一个爬取Python开发工程师工作职位的示例:

import requests
from bs4 import BeautifulSoup

url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Python,2,1.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

job_list = soup.find_all('div', class_='el')

with open('job.txt', 'w', encoding='utf-8') as f:
    for job in job_list:
        job_name = job.find('a', target='_blank').text.strip()
        company_name = job.find('span', class_='t2').text.strip()
        location = job.find('span', class_='t3').text.strip()
        salary = job.find('span', class_='t4').text.strip()
        publish_time = job.find('span', class_='t5').text.strip()

        f.write(f'{job_name}\t{company_name}\t{location}\t{salary}\t{publish_time}\n')

在上面的代码中,我们使用Python爬虫爬取51job发布的Python开发工程师工作职位,并将其保存到本地文件job.txt中。

示例二:爬取Java开发工程师工作职位

我们可以使用Python爬虫爬取51job发布的Java开发工程师工作职位,并将其保存到本地文件中。下面是一个爬取Java开发工程师工作职位的示例:

import requests
from bs4 import BeautifulSoup

url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Java,2,1.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

job_list = soup.find_all('div', class_='el')

with open('job.txt', 'w', encoding='utf-8') as f:
    for job in job_list:
        job_name = job.find('a', target='_blank').text.strip()
        company_name = job.find('span', class_='t2').text.strip()
        location = job.find('span', class_='t3').text.strip()
        salary = job.find('span', class_='t4').text.strip()
        publish_time = job.find('span', class_='t5').text.strip()

        f.write(f'{job_name}\t{company_name}\t{location}\t{salary}\t{publish_time}\n')

在上面的代码中,我们使用Python爬虫爬取51job发布的Java开发工程师工作职位,并将其保存到本地文件job.txt中。

总结

本文介绍了如何使用Python爬虫爬取51job发布的工作职位,包括分析网页结构、编写爬虫代码和运行爬虫代码。需要注意的是,在爬取网页时,需要正确设置请求头和解析HTML文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫小例子——爬取51job发布的工作职位 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 如何使用 Redis 的分布式锁来避免竞态条件?

    以下是详细讲解如何使用 Redis 的分布式锁来避免竞态条件的完整使用攻略。 Redis 分布式锁简介 Redis 是一种高性能键值存储数据库,支持多种结构和高级功能。其中,分布式锁是 Redis 的一个重要功能,可以用于避免竞态条件。Redis 分布式锁的特点如下: Redis 分布式锁是互斥的,同一时刻只有一个客户端可以持有锁。 Redis 分布式锁是重…

    python 2023年5月12日
    00
  • 浅谈Python中的字符串

    Python是一种强大、灵活的编程语言,其中包含了许多特性和数据类型。字符串是Python中最常用的一种数据类型之一,因此掌握字符串的使用方法对于Python编程非常重要。 字符串基础 在Python中,字符串是一种有序的字符序列,可以使用单引号、双引号或三引号表示。例如: my_string = ‘Hello, world!’ another_string…

    python 2023年5月20日
    00
  • urllib2自定义opener详解

    urllib2自定义opener详解 什么是urllib2自定义opener urllib2是Python用来打开URL的标准库,它提供了一系列的模块来处理HTTP请求,包括获取网页内容,POST数据,设置HTTP请求头等。urllib2自定义opener是一个更高级的使用urllib2的方式,它允许在一次HTTP请求中执行多个操作,并且可以自定义HTTP请…

    python 2023年6月3日
    00
  • python学生信息管理系统(初级版)

    Python学生信息管理系统(初级版)攻略 简介 本文将详细讲解如何实现一个简单的Python学生信息管理系统,包括添加学生信息、修改学生信息、删除学生信息、查询学生信息等功能。 实现步骤 第一步:创建学生信息类 首先,需要创建一个学生信息类,包含学生的姓名、性别、年龄等信息。可以使用字典类型存储这些信息,代码如下: class Student: def _…

    python 2023年5月30日
    00
  • python中的try except与R语言中的tryCatch异常解决

    当我们在编写程序时,出现异常是不可避免的。为了优化程序,并避免由于异常引起的程序崩溃,需要使用异常处理技术。Python中的异常处理使用的是try except语法,而R语言使用的是tryCatch语法。 Python中的try except语法 在Python中,试图执行可能会出错的代码段时,可以使用try语句。在try语句中,将包含尝试运行可能会引发异常…

    python 2023年5月13日
    00
  • pytorch 如何查看数据类型和大小

    在 PyTorch 中,可以使用 .dtype 和 .size() 两个函数来查看数据类型和大小。下面是具体的步骤: 查看数据类型 可以使用 .dtype 函数来查看 Tensor 的数据类型,具体步骤如下: 通过加载PyTorch库和创建一个张量,如下代码所示: import torch x = torch.ones(2, 3) 这里创建了一个大小为 $2…

    python 2023年6月2日
    00
  • python通过urllib2获取带有中文参数url内容的方法

    要通过urllib2库获取带有中文参数的url内容,需要注意以下几点: 中文参数需要转码为url能够识别的utf-8格式。 urllib2库默认使用的User-Agent为Python-urllib/2.7,容易被服务器拦截,建议修改为浏览器的User-Agent。 使用Request对象传递参数和Header。 下面给出两个示例来说明: 示例1:获取有道翻…

    python 2023年5月31日
    00
  • Python格式化字符串f-string概览(小结)

    让我来详细讲解一下“Python格式化字符串f-string概览(小结)”的完整攻略。 1. 什么是f-string 在Python 3.6及以上版本中,引入了一种新的字符串格式化方式——f-string,它的全称为formatted string literals。f-string能够让我们通过类似于内嵌变量的方式,在字符串中直接引用变量或表达式,并且提供…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部