毕业将近,大部分学生面临找工作的压力,如何快速的找到自己心仪的岗位并且及时投递简历成为同学们关心的问题,我们设计和实现一个爬取boss直聘,招聘网站招聘信息的爬虫。功能有:对boss直聘网站招聘信息详情进行爬取,对爬取出的详情数据进行存储,将其储存到csv表格中,以及数据分析与数据展示。我在本项目中担任了数据爬取与数据存储模块。
--对boss直聘网站招聘信息详情进行爬取,对爬取出的详情数据进行存储。是我担任的功能。这部分包括搜索想要爬取的工作岗位:
(1)打开指定浏览器、打开制定城市的boss直聘网站、找到搜索框、输入搜索内容、找到搜索按钮、点击搜索。
jobName = 'Java'
cityName = 'chengdu'
url = f'https://www.zhipin.com/{cityName}/'
def main():
web = webdriver.Edge()#选择浏览器
web.get(url) # 打开获取url
searchEle = web.find_element(By.CLASS_NAME, 'ipt-search') # 找到输入框
searchEle.send_keys(jobName) # 输入框中填上工作名称
btnSearch = web.find_element(By.CSS_SELECTOR, 'button.btn.btn-search')
btnSearch.click() # 模拟点击搜索按钮
(2)获取页面内容:获取弹出第一页页面内容、点击岗位详情、打印数据 将字符串转为数组储存到csv中,进行点击下一页。
pageS = 1
while pageS < 100: # page循环
def getOnePage(web, writer):#获取一页内容并写入表格
jobInfos = web.find_elements_by_class_name('job-primary') # 模拟点击岗位详情
for info in jobInfos: # 迭代取出数据
print(info.text) # 打印岗位详情
strText = info.text
arrTxt = strText.split("\n")
tmp = arrTxt[2].split("-") # 将字符串变成数组
arrTxt.insert(2, tmp[0])
writer.writerow(arrTxt) # 将数组写入表格
(3)创建新的csv表格进行数据存储:创建csv表格、写入表头数据、调用getonepage中的数据。
headerRow = [
'岗位名称',
'工作地点',
'起薪',
'薪资区间',
'学历要求',
'联系人',
'公司名称',
'业务范围',
'岗位职责',
'福利待遇',
]
def tableCreater():##创建新的csv表格
with open(fileName, 'a', encoding='utf-8-sig', newline='') as csvfile:
csv_writer = csv.DictWriter(csvfile, fieldnames=headerRow)
csv_writer.writeheader() # 写入表头数据
def getOnePage(web, writer):#获取一页内容并写入表格