原标题: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))

全新打卡学习模式

每天30分钟

30天学会Python编程

世界正在奖励坚持学习的人!返回搜狐,查看更多

责任编辑:

python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!相关推荐

  1. python爬取酒店信息_Python 爬取美團酒店信息

    事由:近期和朋友聊天,聊到黃山酒店事情,需要了解一下黃山的酒店情況,然后就想着用python 爬一些數據出來,做個參考 主要思路:通過查找,基本思路清晰,目標明確,僅僅爬取美團莫一地區的酒店信息,不過 ...

  2. python爬虫应聘信息_python爬虫获取拉钩网在线搜索招聘信息(超实用!)

    # -*- encoding: utf-8 -*- """ """ #  导入相应的包 import requests import tim ...

  3. python爬虫小说下载到txt文档_python 爬取网络小说 清洗 并下载至txt文件

    什么是爬虫 网络爬虫,也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引.网络爬虫可以 ...

  4. java获取异常信息_Python中获取异常(Exception)信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...

  5. python爬取招聘信息_python 爬取boss直聘招聘信息实现

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

  6. python抓取招聘数据_Python爬取招聘网站数据并做数据可视化处理

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于青灯编程 ,作者:清风 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有 ...

  7. python爬取链家租房信息_Python爬取链家网上海市租房信息

    使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取. import requests from bs4 import Beauti ...

  8. python爬淘宝商品销量信息_python爬取淘宝商品销量信息

    python爬取淘宝商品销量的程序,运行程序,输入想要爬取的商品关键词,在代码中的'###'可以进一步约束商品的属性,比如某某作者的书籍,可以在###处输入作者名字,以及时期等等.最后可以得到所要商品 ...

  9. python爬取智联招聘网_python爬取智联招聘工作岗位信息

    1 # coding:utf-8 2 # auth:xiaomozi 3 #date:2018.4.19 4 #爬取智联招聘职位信息 5 6 7 import urllib 8 from lxml i ...

最新文章

  1. webpack结合reactjs、vuejs项目中图片处理
  2. 快速定位java系统的线上问题--转
  3. TypeScript里一些特殊的类型
  4. [Swift]八大排序算法(八):基数排序
  5. Myeclipse里出现两个tomcat,一个是默认的,一个是我增加的,应该用哪个呢?
  6. LeetCode(762)——二进制表示中质数个计算置位(JavaScript)
  7. 推荐系统-Task05推荐系统流程构建
  8. csv数据导入mysql方法
  9. 如何在Mac上恢复格式化的相机卡
  10. Java集合类源码解析:Vector
  11. 3D计算机组装,3DMax电脑组装配置
  12. 2012年3月份第2周51Aspx源码发布详情
  13. NetSetMan Pro v5.1.1 网络参数配置工具便携版
  14. Mediasoup之RateCalculator(流量统计)
  15. 屏读时代,我们患上了注意力缺失候群症
  16. HDU4417_树状数组加离线
  17. 教程//Windows系统滑动关机
  18. ffplay使用ffmpeg滤镜实现倍速播放
  19. uni-app【数据缓存API】
  20. 任意长度密码(密码可输入大小写字母 和 数字)的加密与解密

热门文章

  1. SpringBoot 打成的 jar 包和普通的 jar 包有什么区别
  2. 快速排序算法原理 Quicksort —— 图解(精讲) JAVA
  3. matlab画图颜色属性
  4. 一种级联前后端实现方案
  5. shell 文本替换命令
  6. wxpython表格怎么分页_Word表格跨页断行如何排版?Word表格换页脱节怎么办?
  7. 正确使用pageX、pageY、offsetLeft、offsetTop
  8. webstorm 2017.2 汉化包 中文激活破解版(附汉化教程)
  9. 实现Vibrator测试功能,短震动,长震动,频率震动,取消震动
  10. strcmp函数的C语言实现