用Python爬取了拉勾网的招聘信息+详细教程+趣味学习+快速爬虫入门+学习交流+大神+爬虫入门

简介: 关于一直埋头学习,不知当前趋势,这是学习一门技术过程中最大的忌讳。刚好利用python爬虫,抓取一下拉勾网关于python职位的一些基本要求,不仅能知道岗位的基本技能要求,还能锻炼一下代码能力,学以致用,一举两得。

关于

一直埋头学习,不知当前趋势,这是学习一门技术过程中最大的忌讳。刚好利用python爬虫,抓取一下拉勾网关于python职位的一些基本要求,不仅能知道岗位的基本技能要求,还能锻炼一下代码能力,学以致用,一举两得。

准备

工具 :python 2.7,PyCharm

类库:urllib2、BeautifulSoup、time、re、sys、json、collections、xlsxwriter

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

分析及代码实现

进入拉勾网进行分析,要想获取每个岗位的关键词,首先要知道每个岗位详情页面的url,通过对比我们发现,https://www.lagou.com/jobs/4289433.html中,只有4289433这一串数字是不同的,那么就可以知道我们只要获取到每个岗位的这一串数字,我们就可以爬取每个岗位详情页面。

通过F12查看,我们可以看到xhr请求中https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false的响应消息里的参数positionId的值为详情页面url的那串数字,如下图

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

,那么接下来我们就爬取这个请求来获取所有的positionId。

首先我们通过分析可以看到这是个post请求且form的参数为first、pn、kd,通过不同岗位列表页面的请求,我们可以看到first的取值逻辑是pn为1的时候,first为true,当pn不为1的时候,first的取值为false(其中pn为岗位列表的页数),还有kd为一个固定值(这里是python)

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

def get_positionId(pn): positionId_list = [] url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36', 'Referer': 'https://www.lagou.com/jobs/list_Python?px=default&city=%E5%8C%97%E4%BA%AC' } if pn == 1: first = 'true' else: first = 'false' data = {'first': first, 'pn': pn, 'kd':kd #这里取变量值,可以获取不同岗位的关键词 } page = get_page(url, headers, data) if page == None: return None max_pageNum = get_pageSize(page) result = page['content']['positionResult']['result'] for num in range(0, max_pageNum): positionId = result[num]['positionId'] positionId_list.append(positionId) return positionId_list #该函数返回一个列表页的所有岗位的positionId

在获取到每个岗位的positionId后,我们就可以根据获取到的positionId进行拼接得到每个岗位详情页面的url,然后爬取这些url,来获取每个岗位的关键词(这里还有一个比较坑人的地方就是通过爬取来的网页内容和通过定位得到的内容竟然是不一样的,害的我纠结了好久),分析该网页如下图:

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

具体的实现如下:

#获取每个岗位的职位要求def get_content(positionId): url = 'https://www.lagou.com/jobs/%s.html' %(positionId) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36', 'Referer': 'https://www.lagou.com/jobs/list_Python?px=default&city=%E5%8C%97%E4%BA%AC' } page = get_page(url,headers,data=0) soup = Bs(page, 'html.parser') content = soup.find('dd', class_='job_bt').get_text() return content

接下来就是对获取到的岗位描述进行过滤处理,来获取英文关键词,实现如下:

#对获取的关键词列表进行过滤去重,获取top50的关键词#处理岗位描述,获取英文关键词def get_keyword(content): pattern = re.compile('[a-zA-Z]+') keyword = pattern.findall(content) return keyword

然后,在通过collections中的Counter模块获取到这些英文关键词中的top50,实现如下:

#对获取的关键词列表进行过滤去重,获取top50的关键词def parser_keyword(keyword_list): for i in range(len(keyword_list)): keyword_list[i] = keyword_list[i].lower() keyword_top = Counter(keyword_list).most_common(50) return keyword_top

最后把top50的关键词保存到Excel中,并且生成分析图,实现如下:

#数据保存到Excel中,并且生成报表。def save_excel(keyword_top): row = 1 col = 0 workbook = xlsxwriter.Workbook('lagou.xlsx') worksheet = workbook.add_worksheet('lagou') worksheet.write(0, col, u'关键词') worksheet.write(0, col+1, u'频次') for name, num in keyword_top: worksheet.write(row, col, name) worksheet.write(row, col+1, num) row += 1 chart = workbook.add_chart({'type': 'area'}) chart.add_series({ 'categories': 'lagou!$A$2:$A$51', 'values': 'lagou!$B$2:$B$51' }) chart.set_title({'name': u'关键词排名'}) chart.set_x_axis({'name': u'关键词'}) chart.set_y_axis({'name': u'频次(/次)'}) worksheet.insert_chart('C2', chart, {'x_offset':15, 'y_offset':10}) workbook.close()

结果

具体生成的分析图如下:

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

image.png

如果对您有点帮助的话,麻烦您给点个赞,谢谢。

最后附上全部的代码:

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

用Python爬取了拉勾网的招聘信息,我发现了一个惊人的秘密

大家如果有问题都可以评论区留言,另外如果需要一个学习交流的平台可以加小编的群:719+139+688,群里面有很多学习资料还有大神的直播分享,希望对大家有所帮助,另外在这个上面我回复可能稍微慢一点,但是你们有问题在评论区留言我都会帮你们解决的。

目录
相关文章
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
39 3
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
Python爬虫京东商品详情数据接口
京东商品详情数据接口(JD.item_get)提供商品标题、价格、品牌、规格、图片等详细信息,适用于电商数据分析、竞品分析等。开发者需先注册账号、创建应用并申请接口权限,使用时需遵循相关规则,注意数据更新频率和错误处理。示例代码展示了如何通过 Python 调用此接口并处理返回的 JSON 数据。
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等