爬取boss直聘的相应的职位信息:

一个同学今天想找工作,问我有什么好单位,关键我也不清楚,于是我去各大招聘网站搜索了下,有很多招聘信息,看的我眼花缭乱,刚看完的职位,忘记收藏又过去搜索,感觉太麻烦,于是就想着把内容爬取下来,慢慢看,慢慢分析,先从boss直聘开始爬取。

具体代码如下

import requests
from lxml import etree
import urllib3
urllib3.disable_warnings()
import time# proxy = {#     'http':'123.54.47.203:9999',
# }
# 获取第一个url
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
}def get_details_url(base_url,location='hangzhou',engineer='自动化测试',page=1):locations = {'xian':'c101110100','hangzhou':'c101210100'}url = base_url + '/' + locations[location] + '/'print(url)# 发送请求获取页面源码# params = 'query={}&page={}&ka=page-{}'.format(engineer,page,page) 这种方式好像不行,不知道为什么params = {'query':engineer,'page':page,'ka':'page'+'-'+ str(page)}res = requests.get(url=url,headers=headers,params=params,verify=False)# print(res.content.decode("utf-8"))result = res.content.decode("utf-8")# 解析页面内容为html文档树结构html = etree.HTML(result)lis = html.xpath('//div[@class="job-list"]/ul/li')# print(lis)# 获得返回的详情页面的urldetail_urls = []for li in lis:detail_url = li.xpath('.//div[@class="primary-box"]/@href')[0]detail_url = base_url + detail_url# print(detail_url)detail_urls.append(detail_url)return detail_urlsbase_url = 'https://www.zhipin.com'
print(get_details_url(base_url))
details_url = get_details_url(base_url)# 爬取详情页面的内容薪水和职位和公司results = []
datas={}
for detail_url in details_url[:5]:time.sleep(5)res = requests.get(url=detail_url,headers=headers,verify=False)# print(res.content.decode("utf-8"))result = res.content.decode("utf-8")# print(res.status_code)html = etree.HTML(result)divs = html.xpath("//div[@class='job-primary detail-box']//div[@class='info-primary']//div[@class='name']")# print(divs)eng = divs[0].xpath('./h1/text()')[0]salary = divs[0].xpath('./span/text()')[0]company_dec = html.xpath('//div[@class="job-box"]//div[@class="inner home-inner"]')[0]company = company_dec.xpath('.//div[@class="job-sider"]//div[@class="company-info"]/a[1]/@title')[0]office_decription = company_dec.xpath('.//div[@class="detail-content"]//div[@class="job-sec"]//div[@class="text"]/text()')[0]datas['company'] = companydatas['office_decription'] = office_decriptiondatas['eng'] = engdatas['salary'] = salaryfor i,j in datas.items():datas[i] = str(j).strip().strip('\\n')# print(datas)results.append(datas)print(results)

本次爬取遇到的问题:
1.输出的网页源码信息看着不是我想要的?

解决方式:添加cookie信息(通过f12抓包获取,然后添加到请求头中),顺便说下什么是cookie,cookie是服务端为了识别用户的身份,在客户第一次访问服务器后,服务端在客户端本地存取的一些数据(也叫session跟踪,一般不大于4kb),用户访问其他链接时就会带上cookie信息

cookie的格式如下

2.为什么爬两次就又爬取不到了?

解决方式:这是因为网站设置了反爬虫机制,所以在爬取时,可以试试添加等待时间,以更大程度的模拟真实用户的场景

3.爬取的次数多了,可能被网站识别,有可能造成访问不了人家网址了,该如何解决?

解决方式:可以通过设置代理ip

python爬虫-爬取boss直聘的职位信息相关推荐

  1. python爬虫爬取Boss直聘网招聘信息

    学校给我们大三同学找了一个培训组织,做了10天的实训,我学习的是python,最后是以一个爬虫程序为结业作业,就着这个实训,顺便发一个博客记录一下.考虑到我们即将就业,所以准备爬一个招聘网站,最终决定 ...

  2. Python笔记-爬取Boss直聘的招聘信息

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

  3. python爬取boss直招_简易python爬虫爬取boss直聘职位,并写入excel

    1,默认城市是杭州,代码如下 #! -*-coding:utf-8 -*- from urllib import request, parse from bs4 import BeautifulSou ...

  4. boss直聘python_简易python爬虫爬取boss直聘职位,并写入excel

    #! -*-coding:utf-8 -*- from urllib import request, parse from bs4 import BeautifulSoup import dateti ...

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

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

  6. 写一个爬虫爬取boss直聘网站

    好的,我可以为您简要介绍如何编写一个爬虫来爬取 BOSS 直聘网站. 首先,您需要准备好以下几个东西: 安装 Python,并使用 pip 安装爬虫所需的库,如 requests 和 Beautifu ...

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

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

  8. python爬虫——爬取拉勾上的职位信息

    爬取拉勾网站岗位数据 1.调用网页 查找网页链接规律 写一个for循环,爬取每一个网页的职位信息 def down():for i in range(1,4):if i == 1:strUrl = & ...

  9. 爬虫练习(一)爬取Boss直聘的招聘信息

    通过职位搜索"Python开发",看下搜索的结果 https://www.zhipin.com/job_detail/?query=python开发&city=101020 ...

最新文章

  1. python爬虫入门-Python 爬虫从入门到进阶之路(一)
  2. 深入Java虚拟机:Class文件实例解析
  3. 之江杯2020零样本目标分割题参赛总结
  4. Linux 文件系统在线扩容实战
  5. jquery特效(1)—点击展示与隐藏全文
  6. Redis——学习之路一(初识redis)
  7. android x86 笔记本卡屏,笔记本死机卡屏怎么办
  8. Swing超市收银系统附图
  9. 统考英语和计算机什么时候出成绩单,网络教育统考成绩啥时候出来
  10. godspeed机器人_cs1.6kz地图包下载
  11. mouseover 和 mouseenter
  12. 2021杭电多校第三场 D题—Game on Plane(思维题)
  13. Chrome安装CRX插件方法
  14. 利用NCBIdatasets批量下载大规模生信数据集
  15. 知网CAJ转为PDF下载
  16. 基于 HTML5 + WebGL 的宇宙 3D 展示系统
  17. flask-sqlachemy note
  18. 平方数列、立方数列求和公式与推导
  19. [附源码]Python计算机毕业设计大学生二手物品交易网站
  20. SQLServer 服务启动失败

热门文章

  1. Linux_正则表达式与文件格式化处理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇必学会)
  2. 电信计算机知识考试,2019中国电信计算机专业知识模拟试卷 --- 答案解析(九)...
  3. Linux服务器 | 01.服务器购买与基本配置
  4. 使用IDEA调试Arthas
  5. 浅谈Masonry的使用技巧
  6. 无线群控服务器转让,群控系统无限开接手的项目
  7. maven中央仓库找不到jconsole-1.8.0.jar和tools-1.8.0.jar包
  8. gdb调试,splint_valgrind代码检查
  9. 「深度好文」TCP BBR拥塞控制算法深度解析
  10. IDEA从零到精通(16)之IDEA中用Spring Initializr创建springboot项目