首页 > 编程语言 >python爬取招聘网岗位(仅供学习)

python爬取招聘网岗位(仅供学习)

时间:2022-11-20 23:03:19浏览次数:34  
标签:span python 招聘网 list 爬取 item job tag text

1、某某**集招**信息

2、使用到了requests,bs4,openpyxl,time模块

(1)分析页面,发送请求,并把请求返回定义为一个模块。

url = 'https://***.*****.com/company/{0}/jobs/?n={1}'.format(qiye_id, page)

(2)提取数据,BeautifulSoup解析。

bs = BeautifulSoup(html, 'html.parser')
job_list = bs.find_all('div', class_='c-job-list')
for item in job_list: # 分别遍历每一个岗位
name = item.find('h3').text

(3)存储数据,openpyxl对excel操作。经典六步骤:

def save_excel(list_1):  # 存储
wk = openpyxl.Workbook()
sheet = wk.active
for item in list_1:
sheet.append(item)
# 保存文件
wk.save('06-招**信息1.xlsx')

(4)开始调用,循环调用上面的函数。注意使用time.sleep(5)

def start(id, pages):
for page in range(1, pages + 1):
resp_data = send_request(id, pages) # 调用请求返回
parse_html(resp_data) #调用提取数据
time.sleep(2)
save_excel(lst) # 保存


详细实现代码:

import requests
from bs4 import BeautifulSoup
import openpyxl
import time

lst = []


def send_request(qiye_id, page):
url = 'https://www.*****.com/company/{0}/jobs/?n={1}'.format(qiye_id, page)
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
"Chrome/86.0.4240.198Safari/537.36 "
}
resp = requests.get(url=url, headers=headers)
return resp.text


# 提取数据
def parse_html(html):
bs = BeautifulSoup(html, 'html.parser') # 得到BeautifulSoup对象
job_list = bs.find_all('div', class_='c-job-list') # 得到包含岗位的div,共15个
for item in job_list: # 分别遍历每一个岗位
name = item.find('h3').text
div_tag = item.find('div', class_='job-desc')
span_tag = div_tag.find_all('span')
# print(name, span_tag[0].text, span_tag[1].text, span_tag[2].text, span_tag[3].text, span_tag[4].text)
# print(name)
url = item.find('a', class_='job-name')['href'] # 提取job-name的a标签,获取href属性,以便获取详细的岗位描述。
url = 'https://www.*****.com' + url
# print(url)
lst.append([name, span_tag[0].text, span_tag[1].text, span_tag[2].text, span_tag[3].text, span_tag[4].text,url])


def save_excel(list_1): # 存储
wk = openpyxl.Workbook()
sheet = wk.active
for item in list_1:
sheet.append(item)
# 保存文件
wk.save('06-**信息.xlsx')


def start(id, pages):
for page in range(1, pages + 1):
resp_data = send_request(id, pages)
parse_html(resp_data)
time.sleep(2)
save_excel(lst)


if __name__ == '__main__':
id = '16021570'
page = 3
start(id, page)

注:敏感招**地址已作处理,哎。。。。。


标签:span,python,招聘网,list,爬取,item,job,tag,text
From: https://blog.51cto.com/u_14012524/5872096

相关文章

  • PYTHON编写程序练习-打印99乘法表
     使用for循环嵌套的知识点编写foriinrange(1,10):  #第一层循环,循环乘数forjinrange(1,i+1):  #第二层循环,循环被乘数print(f"{i}x{j}="+......
  • 力扣33(java&python)-搜索旋转排序数组(中等)
    题目:整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],......
  • python安装报错error: pybind11 2.10+ requires MSVC 2017 or newer
    pip安装paddleocr时报错,提示要2017或更高,c:\users\administrator\appdata\local\temp\pip-build-env-86xs2ijc\overlay\lib\site-packages\pybind11\include\pybind11\det......
  • python学习第七周总结
    C/S模块1C/S模块: 1.1Client:客户端:客户端也就是你这一端可以接收到的程序,手机app,web网页等,我们可以在客户端页面上向度武器发送请求以及数据,交给服务器处理。 1.2......
  • python中的一些画图操作
    turtle首先要了解python中的一个与画图有关的库(不用下载),就是turtle,也可以叫它海龟。我们使用时需要先导入。列如:importturtle就可以使用了。一些简单的操作使用软件......
  • python多进程map用户 scatter绘图 make_blobs聚类数据生成
    pythonmultiprocessingmap(func,iterable[,chunksize])map()内置函数的并行等价物(尽管它只支持一个可迭代的参数)。它会阻塞,直到结果准备就绪。此方法将iterable内的每一个......
  • Miniconda & vs code _ How to Set up Python and Visual Studio Code IDE for Dat
    原文:HowtoSetupPythonandVisualStudioCodeIDEforDataScience-OneZeroBlog SettingupPythonandrunningitsmoothlyonyourPCisessentialford......
  • python3-基础篇-11-文件操作
    python中多file的操作:1使用open()方法用于打开一个文件,并返回文件对象(打开文件,得到文件句柄并赋值给一个变量)2.通过文件对象对文件进行一系列操作(通过句柄对文件进行操作)3......
  • python版nbtscan
    python版nbtscan#-*-coding:utf-8-*-importsocketimportsysfromdatetimeimportdatetime#importthreadingimporttimeimportipaddress#识别ip段模块......
  • Python学习笔记:删除多级索引
    在Python中使用stack/unstack/melt/pivot_talbe等函数进行聚合之后,计算得到的结果具有多层索引。一般情况下可以通过额外指定columns或者通过reset_index()可重置......