原标题:python 爬取boss直聘招聘信息实现

1、一些公共方法的准备

获取数据库链接:

importpymysql

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

# 获得数据库链接对象

defgetConnect(database):

DATABASE = {

'host': 'localhost',

'database': database,

'user': 'root',

'password': '123456'

}

returnpymysql.connect(**DATABASE)

获取页面soup对象:

importrequests

frombs4 importBeautifulSoup

#转换成soup对象

defto_soup(str):

returnBeautifulSoup(str, 'lxml')

#通过url和header获取页面soup对象

defget_soup(url,header):

response=requests.get(url,headers=header)

returnto_soup(response.text)

2、爬取BOSS直聘python相关岗位的实现

定义工作信息对象:

classWorkInfo:

def__init__(self, title, salary, site, experience, education, job_url, company,release_date,get_date):

self.title = title

self.salary = salary

self.site = site

self.experience = experience

self.education = education

self.job_url = job_url

self.company = company

self.release_date = release_date

self.get_date = get_date

获取工作信息到定义的对象的集合:

# 获取工作信息集合

defgetWorkInfos(url, header):

# 获得页面soup对象

htmlSoup = rep.get_soup(url, header)

workInfos = []

# 获取页面内容块状列表

job_infos = htmlSoup.find_all( 'div', class_= 'job-primary')

iflen(job_infos)== 0:

print( '已到空白页!!!')

returnworkInfos

# 遍历每块,获取每块详细类容

print( '开始爬取页面数据!')

forjob_info_soup injob_infos:

# 标题

title = job_info_soup.find( 'div', class_= 'job-title').get_text

# 薪资

salary = job_info_soup.find( 'span', class_= 'red').get_text

infos = str(job_info_soup.find( 'p'))

infosList = tool.toContent(infos)

# 工作地址

site = infosList[ 0]

# 工作经验

experience = infosList[ 1]

# 学历要求

education = infosList[ 2]

# 详细信息链接

job_url = job_info_soup.find( 'a').get( 'href')

# 公司名

company = job_info_soup.find( 'div', class_= 'company-text').find( 'a').get_text

# 发布时间

release_date = job_info_soup.find( 'div', class_= 'info-publis').find( 'p').get_text[ 3:]

# 拼接获取符合数据库要求的日期字符串

if'昨'inrelease_date:

release_date=time.strftime( "%Y-%m-%d",time.localtime(time.time -86400))

elif':'inrelease_date:

release_date=time.strftime( "%Y-%m-%d")

else:

release_date = str(time.localtime.tm_year) + '-'+ re.sub( r'[月,日]', '-', release_date)[: -1]

# 获取数据的时间

get_date = time.strftime( "%Y-%m-%d %H:%M:%S")

workInfo = WorkInfo(title, salary, site, experience, education, job_url, company, release_date, get_date)

workInfos.append(workInfo)

print( '爬取页面数据完毕!')

returnworkInfos

把获取到的工作信息集合存入数据库:

# 存入数据库

def toDatabase(workInfos):

print('开始存入数据库')

db = database.getConnect('reptile')

cursor = db.cursor

for workInfo in workInfos:

sql = " INSERTINTO`work_info`( `title`, `salary`, `site`, `experience`, `education`, `job_url`, `company`, `release_date`, `get_date`) "

"VALUES( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') "

% (workInfo.title, workInfo.salary, workInfo.site, workInfo.experience, workInfo.education, workInfo.job_url, workInfo.company, workInfo.release_date,workInfo.get_date)

cursor.execute(sql)

cursor.close

db.commit

db.close

print('存入数据库完毕!')

爬取工作实现:

url = 'https://www.zhipin.com/c101270100/?'

header = {

'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',

'referer': '',

'cookie ':'lastCity= 101270100; _uab_collina= 155876824002955006866925; t=DPiicXvgrhx7xtms; wt=DPiicXvgrhx7xtms; sid=sem_pz_bdpc_dasou_title; __c= 1559547631; __g=sem_pz_bdpc_dasou_title; __l=l=% 2Fwww.zhipin.com% 2F% 3Fsid% 3Dsem_pz_bdpc_dasou_title&r=https% 3A% 2F% 2Fsp0.baidu.com% 2F9q9JcDHa2gU2pMbgoY3K% 2Fadrc.php% 3Ft% 3D06KL00c00fDIFkY0IWPB0KZEgsZb1OwT00000Kd7ZNC00000JqHYFm.THdBULP1doZA80K85yF9pywdpAqVuNqsusK15yF9m1DdmWfdnj0sm1PhrAf0IHYYnD7aPH9aPRckwjRLrjbsnYfYfWwaPYwDnHuDfHcdwfK95gTqFhdWpyfqn1czPjmsPjnYrausThqbpyfqnHm0uHdCIZwsT1CEQLILIz4lpA-spy38mvqVQ1q1pyfqTvNVgLKlgvFbTAPxuA71ULNxIA-YUAR0mLFW5HRvnH0s% 26tpl% 3Dtpl_11534_19713_15764% 26l% 3D1511867677% 26attach% 3Dlocation% 253D% 2526linkName% 253D% 2525E6% 2525A0% 252587% 2525E5% 252587% 252586% 2525E5% 2525A4% 2525B4% 2525E9% 252583% 2525A8-% 2525E6% 2525A0% 252587% 2525E9% 2525A2% 252598-% 2525E4% 2525B8% 2525BB% 2525E6% 2525A0% 252587% 2525E9% 2525A2% 252598% 2526linkText% 253DBoss% 2525E7% 25259B% 2525B4% 2525E8% 252581% 252598% 2525E2% 252580% 252594% 2525E2% 252580% 252594% 2525E6% 252589% 2525BE% 2525E5% 2525B7% 2525A5% 2525E4% 2525BD% 25259C% 2525EF% 2525BC% 25258C% 2525E6% 252588% 252591% 2525E8% 2525A6% 252581% 2525E8% 2525B7% 25259F% 2525E8% 252580% 252581% 2525E6% 25259D% 2525BF% 2525E8% 2525B0% 252588% 2525EF% 2525BC% 252581% 2526xp% 253Did(% 252522m3224604348_canvas% 252522)% 25252FDIV% 25255B1% 25255D% 25252FDIV% 25255B1% 25255D% 25252FDIV% 25255B1% 25255D% 25252FDIV% 25255B1% 25255D% 25252FDIV% 25255B1% 25255D% 25252FH2% 25255B1% 25255D% 25252FA% 25255B1% 25255D% 2526linkType% 253D% 2526checksum% 253D8% 26wd% 3Dboss% 25E7% 259B% 25B4% 25E8% 2581% 2598% 26issp% 3D1% 26f% 3D3% 26ie% 3Dutf -8% 26rqlang% 3Dcn% 26tn% 3Dbaiduhome_pg% 26oq% 3D% 2525E5% 25258D% 25259A% 2525E5% 2525AE% 2525A2% 2525E5% 25259B% 2525AD% 26inputT% 3D9649% 26prefixsug% 3Dboss% 26rsp% 3D0&g=% 2Fwww.zhipin.com% 2F% 3Fsid% 3Dsem_pz_bdpc_dasou_title; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a= 1558768262, 1558768331, 1559458549, 1559547631; JSESSIONID=A0FC9E1FD0F10E42EAB681A51AC459C7; '

'__a= 86180698.1558768240.1559458549.1559547631.63.3.6.6; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a= 1559551561'

'referer: https: //www.zhipin.com/c101270100/?query=python&page=2&ka=page-2'

}

query= 'python'

page= 1

while True:

print( "开始第:{} 页".format(page))

purl=url+ 'query='+query+ '&page='+str(page)+ '&ka=page-'+str(page)

workInfos = getWorkInfos(purl, header)

iflen(workInfos)== 0:

print( '结束爬取!')

break

toDatabase(workInfos)

page=page+ 1

3、涉及的小知识

自制去取html标签,把标签内夹杂的内容存入list中:

# 通过正则表达式去掉HTML标签,获取标签内的文字内容列表

deftoContent(str):

infos=re.split( ']*>', str)

# 去除空元素

returnlist(filter( None,infos))

时间的相关操作

用‘-’替换‘月’‘日’:

re.sub(r'[月,日]', '-', release_date)

获取前一天’:

release_date=time.strftime("%Y-%m-%d",time.localtime(time.time-86400))返回搜狐,查看更多

责任编辑:

python爬取招聘信息_python 爬取boss直聘招聘信息实现相关推荐

  1. python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!

    原标题:Python 爬取boss直聘招聘信息! 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求, ...

  2. python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息

    Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...

  3. Boss直聘职位信息爬取+分析

    BOSS直聘职位信息爬取分析 先上结果,本次抓取了732条职位的信息入库: 代码实现: import requests import json from lxml import etree from ...

  4. 基于‘BOSS直聘招聘信息’分析企业到底需要什么样的PHPer

    基于'BOSS直聘招聘信息'分析企业到底需要什么样的PHPer 前两篇文章都没看,好意思直接看结果? Python爬虫框架Scrapy实战 - 抓取BOSS直聘招聘信息 Pyhton爬虫实战 - 抓取 ...

  5. 最新puppeteer爬虫boss直聘招聘公司及职位信息

    ​失踪人口回归了!由于一直在爬虫,遇到的坑比较多,先大致汇报下 1.获取全国所有企业 2.通过企查查补充企业信息 3.爬虫boss直聘获取公司及职位信息 本次先说爬虫boss直聘 目的: 获取指定城市 ...

  6. 招聘革命者:五岁BOSS直聘的慢与快

    随着90后.95后成为职场主力军,招聘到了一个爆发的新时代拐点时刻.可以说,年轻人直接和老板谈工作,是眼下"互联网+人力资源"最火的话题. 这其中,革命者BOSS直聘成为这一新模式 ...

  7. python爬取boss直聘招聘信息_python学习之路-爬取boss直聘的岗位信息

    背景 想了解从事python相关岗位需要具备什么技能,于是就想从招聘网站上的职位需求入手,把信息获取下来后,生成词云,这样就能很直观的看出来哪些技能是python相关岗位需要具备的了. 技术概览 sc ...

  8. python爬取boss直聘招聘信息_Python笔记-爬取Boss直聘的招聘信息

    2018-05-09笔记: 最近迷上了爬虫,爬取招聘信息,存在MongoDB上 代码思路和上一篇爬取酷狗TOP500差不多,但是在使用CSS选择器的时候,有两组信息是连在一起,所以使用正则来获取 本来 ...

  9. python爬取boss直聘招聘信息_年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备...

    原标题:年底啦,利用Python爬取Boss直聘的招聘信息,为明年跳槽做准备 前言 为什么都说程序员的薪资高,但是刚开始入职的你,薪资并不是自己想象中的那样,首先是你的工作经验不足,其次就是需要不断的 ...

最新文章

  1. 7月Python和机器学习最佳开源项目Top 10!
  2. 无需用户输入!Adobe提出自动生成高质量合成图像新方法
  3. Django REST framework API 指南(2):响应
  4. 转- prototype
  5. AD属性修改 office 365 delivery management 设定
  6. 昨日万圣节ABAP怪兽级代码谜团,公布答案啦
  7. 内向的人怎样改善人际关系(三)
  8. 被踢出sci_这本世界上创刊最早的期刊竟被踢出 SCI 了?!
  9. html5引擎 laya,传说中的HTML5超级引擎layabox今日开放
  10. 2021年宇华实验中学高考成绩查询,2021年河南高考状元多少分,今年河南高考状元资料名单...
  11. c语言编写的程序不具备移植性,《C语言》试卷1
  12. 西安集训B层Day1 test 问题 A: 旅行日记
  13. WinRAR 5.70 简体中文官方试用版(无广告)
  14. Excel将xlsx后缀格式的宏文件转为xlsm格式?
  15. 星际争霸 2 快捷键
  16. 360浏览器用的什么内核?
  17. js时间转换的一些方法,时间转换天数,获取商品活动时间
  18. javaSE(71-148)
  19. 绝对正确!解释“超键、候选键和主键”之间的关系
  20. 我猜,你还不知道数据标注公司在做什么吧?

热门文章

  1. MATLAB中如何作随时间变化图
  2. 软件评估报告和软件可行性分析文档搜集
  3. [VB.NET] - Rs232 通讯 COM口
  4. 连接池以及连接池的使用
  5. 文本匹配相似度计算---多种距离算法 ,多种相似度计算算法,一看就懂
  6. js踩坑汇总(一).md
  7. 投资怕选错房?跟着买房路线图走不亏!
  8. java中 int、char、long各占多少字节数
  9. C++动态规划入门习题+解析
  10. mac qq 用户信息文件夹