当前位置: 首页 > news >正文

网站程序引擎十大营销策略

网站程序引擎,十大营销策略,做公司网站要走哪些流程,建设县政府门户网站的请示引言 拉勾网,作为互联网招聘领域的佼佼者,汇聚了海量且多样的职位招聘信息。这些信息涵盖了从新兴科技领域到传统行业转型所需的各类岗位,无论是初出茅庐的应届生,还是经验丰富的职场老手,都能在其中探寻到机遇。 对…

引言

拉勾网,作为互联网招聘领域的佼佼者,汇聚了海量且多样的职位招聘信息。这些信息涵盖了从新兴科技领域到传统行业转型所需的各类岗位,无论是初出茅庐的应届生,还是经验丰富的职场老手,都能在其中探寻到机遇。

对于求职者而言,能够快速、全面地掌握招聘职位的详细情况,如薪资待遇的高低、工作地点的便利性、职位描述所要求的技能与职责等,无疑能在求职路上抢占先机。而企业方,通过分析同行业职位信息的发布趋势、薪资水平的波动,也可为制定更具吸引力的招聘策略提供有力依据。

接下来,就让我们看看如何运用 Python 爬虫从拉勾网获取关键的招聘信息。

目录

一、实战目标

二、技术路线

三、数据爬取

3.1 网页分析

3.2 网页请求

3.3 网页解析

3.4 保存数据

总结


一、实战目标

本次实战的核心目标是精准抓取拉勾网特定职位的关键招聘信息。具体而言,要获取的信息涵盖:职位名称,它如同求职路上的指南针,能让求职者迅速定位职业方向;薪资范围,这是求职者关注的重点,也是衡量自身价值与市场行情的关键标尺;公司名称,背后关联着企业的规模、文化与发展前景;

二、技术路线

requests:用于发送HTTP请求,获取网页内容。

BeautifulSoup:用于解析HTML页面,提取所需的信息。

csv:用于将爬取的数据存储为CSV文件,便于后续分析。

三、数据爬取

3.1 网页分析

拉勾网的职位列表页,清晰明了的卡片式设计呈现了众多招聘信息,关键数据一目了然。仔细观察其 URL,不难发现其中蕴含的规律,如职位关键词、城市代码、页码等参数巧妙嵌入,以 “https://www.lagou.com/wn/jobsfromSearch=true&kd=python&pn=1&city=%E8%A5%BF%E5%AE%89” 职位关键词 /city = 城市代码、kd = 关键职位、pn = 页码” 为例,这种结构为精准定位不同职位、不同地区的招聘页面提供了线索,pn 参数可以协助我们获取多分页的信息。

分析后我们可以知道,职位信息都在class_=‘item__10RTO’ 的div元素下,可以通过id=‘openWinPostion’、class_=‘money__3Lkgq’、class_=‘company-name__2-SjF’ 来分别获取职位名称、薪资范围和公司名称。

3.2 网页请求

在 Python 的工具库中,requests 库能高效地向目标网站发送 HTTP 请求,帮我们牵线搭桥获取网页内容。不过,拉勾网为了维护自身数据的有序访问,设置了一些防护机制,我们得像智慧的访客一样巧妙应对。

首先,合理设置请求头(headers)至关重要,它就像是我们拜访网站时递出的名片,告知对方我们是友好且正常的浏览器访问。模拟常见浏览器的 User-Agent 字段,如 “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36”,让服务器误以为我们是普通用户操作。同时,Referer 字段也不可忽视,它记录着请求的来源页面,保持其合理性,能避免一些不必要的拦截。最后,如果网站有动态验证的话我们需要设置 Cookie ,可以从自己浏览器访问记录中找到Cookie参数。

# 拉勾网职位招聘信息爬取与数据分析
import requests# 模拟浏览器头部信息
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36","Referer": "https://www.lagou.com/jobs/list_python?px=default","Cookie": "index_location_city=%E5%85%A8%E5%9B%BD; user_trace_token=20250104093938-902c4ff5-f24c-45e5-aec2-3d1473035947; __lg_stoken__=a8290517006006e881e7779a471d837c8e507eea47d1d1fa6cc1ad03ccb44cefb814362b5ac691966eb8697d786c6e53e4f6c233c3d4eaa9ba7c50ac63afc8f768fef09ed4ae; JSESSIONID=ABAACCCABBFAAGBFE0BC31D870268EB481847F272508F4B; WEBTJ-ID=20250104094035-1942ef8a924bd-0dd7463ae6d789-26001851-1049088-1942ef8a9253d2; LGUID=20250104093941-930407fa-f7e8-4c42-81fc-756f97aefcb1; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1735954836; HMACCOUNT=D7BB61FCD5F74C1A; sajssdk_2015_cross_new_user=1; _ga=GA1.2.694435554.1735954836; _gid=GA1.2.74502511.1735954836; X_MIDDLE_TOKEN=bd70439f6dca25617ea4b718273bbf6d; SEARCH_ID=6e9a4c0e27e34ae3929ec6c60a10d1f7; X_HTTP_TOKEN=1226f88b1a607ea4951559537134b7e1ae0350e7f1; sensorsdata2015session=%7B%7D; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1735955277; LGRID=20250104094702-51a5d712-8f33-46b0-a616-3b54c420e4a4; _ga_DDLTLJDLHH=GS1.2.1735954837.1.1.1735955277.60.0.0; gate_login_token=v1####df3b53f43f17d1db42f281952270b469e8255336da4736f3; LG_LOGIN_USER_ID=v1####5496aa08cbf5a8587c4797982411a6af15950cd637352b0a; LG_HAS_LOGIN=1; _putrc=B6E2CB0ECCED9CDE; login=true; unick=%E7%94%B3%E7%99%BB%E5%B3%B0; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; privacyPolicyPopup=true; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221942ef8ab81cd-06cd07b2b912ae-26001851-1049088-1942ef8ab822d7%22%2C%22%24device_id%22%3A%221942ef8ab81cd-06cd07b2b912ae-26001851-1049088-1942ef8ab822d7%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24os%22%3A%22Windows%22%2C%22%24browser%22%3A%22Chrome%22%2C%22%24browser_version%22%3A%22121.0.0.0%22%7D%7D"
}# 目标URL,以Python职位为例,搜索西安地区,第一页数据,pn为页码,kd为职位关键词
url = "https://www.lagou.com/wn/jobs?fromSearch=true&kd=python&pn=1&city=%E8%A5%BF%E5%AE%89"# 发送get请求,获取响应
res = requests.get(url, headers=headers)
html = res.text
print(html)

在这段代码中,我们精心构建了请求头和请求参数,并发起 GET请求,若请求顺利,便能获得网页数据,为后续的数据解析铺就道路。

3.3 网页解析

当我们成功取回网页的 HTML 内容,需要合适的工具来解读其中的奥秘。在这里,我们使用BeautifulSoup来获取想要的信息。我们已获取到拉勾网职位列表页的 HTML 内容,存储在变量 html 中,提取职位名称、薪资、公司名称等信息的代码如下:

from bs4 import BeautifulSoupjob_list = []
# 创建BeautifulSoup对象,选用html.parser解析器
soup = BeautifulSoup(html, 'html.parser')# 查找所有职位列表项
job_list_items = soup.find_all('div', class_='item__10RTO')for item in job_list_items:# 提取职位名称job_title = item.find(id='openWinPostion').text.strip()# 提取薪资范围salary = item.find('span', class_='money__3Lkgq').text.strip()# 提取公司名称company_name = item.find('div', class_='company-name__2-SjF').text.strip()# 将职位信息写入列表job_list.append({"job_title": job_title, "salary": salary, "company_name": company_name})print(job_list)

在这段代码里,我们先创建了 BeautifulSoup 对象,然后定义了列表用于临时存储职位信息,接着利用 find_all 方法依据类名找出所有职位列表项,再深入每个列表项,通过标签与属性的组合,精准抓取职位名称、薪资、公司名称等关键信息,将其清晰呈现。

3.4 保存数据

辛苦抓取并解析得到的数据,需要妥善保存才能让其价值延续。常见的 CSV、JSON 等格式,各有千秋。

CSV 格式,以其简洁的表格形式,通用性强,能被 Excel 等众多软件直接打开编辑,方便数据的初步查看与简单分析。Python 内置的 csv 模块便能担此大任。以下是将获取到的拉勾网职位数据保存为 CSV 文件的示例:

import csv# CSV文件路径
csv_file_path = "lagou_jobs.csv"# 写入CSV文件
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile:fieldnames = ['job_title', 'salary', 'company_name']  # 定义列名writer = csv.DictWriter(csvfile, fieldnames=fieldnames)writer.writeheader()  # 写入表头writer.writerows(job_list)  # 写入数据行print(f"数据已成功保存至 {csv_file_path}")

在这段示例中,我们首先定义了 CSV 文件路径,运用 csv.DictWriter 以字典形式将数据逐行写入 CSV 文件,同时写入表头,确保数据存储的规范性与完整性,方便后续随时调取分析。

最后对代码进行整理优化,并增加多页面处理。

# 爬取拉勾网职位招聘信息
import requests
from bs4 import BeautifulSoup
import csvdef get_html(url):# 模拟浏览器头部信息headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36","Referer": "https://www.lagou.com/jobs/list_python?px=default","Cookie": "index_location_city=%E5%85%A8%E5%9B%BD; user_trace_token=20250104093938-902c4ff5-f24c-45e5-aec2-3d1473035947; __lg_stoken__=a8290517006006e881e7779a471d837c8e507eea47d1d1fa6cc1ad03ccb44cefb814362b5ac691966eb8697d786c6e53e4f6c233c3d4eaa9ba7c50ac63afc8f768fef09ed4ae; JSESSIONID=ABAACCCABBFAAGBFE0BC31D870268EB481847F272508F4B; WEBTJ-ID=20250104094035-1942ef8a924bd-0dd7463ae6d789-26001851-1049088-1942ef8a9253d2; LGUID=20250104093941-930407fa-f7e8-4c42-81fc-756f97aefcb1; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1735954836; HMACCOUNT=D7BB61FCD5F74C1A; sajssdk_2015_cross_new_user=1; _ga=GA1.2.694435554.1735954836; _gid=GA1.2.74502511.1735954836; X_MIDDLE_TOKEN=bd70439f6dca25617ea4b718273bbf6d; SEARCH_ID=6e9a4c0e27e34ae3929ec6c60a10d1f7; X_HTTP_TOKEN=1226f88b1a607ea4951559537134b7e1ae0350e7f1; sensorsdata2015session=%7B%7D; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1735955277; LGRID=20250104094702-51a5d712-8f33-46b0-a616-3b54c420e4a4; _ga_DDLTLJDLHH=GS1.2.1735954837.1.1.1735955277.60.0.0; gate_login_token=v1####df3b53f43f17d1db42f281952270b469e8255336da4736f3; LG_LOGIN_USER_ID=v1####5496aa08cbf5a8587c4797982411a6af15950cd637352b0a; LG_HAS_LOGIN=1; _putrc=B6E2CB0ECCED9CDE; login=true; unick=%E7%94%B3%E7%99%BB%E5%B3%B0; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; privacyPolicyPopup=true; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221942ef8ab81cd-06cd07b2b912ae-26001851-1049088-1942ef8ab822d7%22%2C%22%24device_id%22%3A%221942ef8ab81cd-06cd07b2b912ae-26001851-1049088-1942ef8ab822d7%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24os%22%3A%22Windows%22%2C%22%24browser%22%3A%22Chrome%22%2C%22%24browser_version%22%3A%22121.0.0.0%22%7D%7D"}# 发送get请求,获取响应res = requests.get(url, headers=headers)html = res.textif res.status_code == 200:print(f"请求成功,状态码:{res.status_code}")else:print(f"请求失败,状态码:{res.status_code}")return htmldef get_alljobs(html):job_list = []# 创建BeautifulSoup对象,选用html.parser解析器soup = BeautifulSoup(html, 'html.parser')# 查找所有职位列表项job_list_items = soup.find_all('div', class_='item__10RTO')for item in job_list_items:# 提取职位名称job_title = item.find(id='openWinPostion').text.strip()# 提取薪资范围salary = item.find('span', class_='money__3Lkgq').text.strip()# 提取公司名称company_name = item.find('div', class_='company-name__2-SjF').text.strip()# 将职位信息写入列表job_list.append({"job_title": job_title, "salary": salary, "company_name": company_name})return job_listdef save_to_csv(job_list):# CSV文件路径csv_file_path = "lagou_jobs.csv"# 写入CSV文件with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile:fieldnames = ['job_title', 'salary', 'company_name']  # 定义列名writer = csv.DictWriter(csvfile, fieldnames=fieldnames)writer.writeheader()  # 写入表头writer.writerows(job_list)  # 写入数据行return f"数据已成功保存至 {csv_file_path}"if __name__ == "__main__":# 目标URL,以Python职位为例,搜索西安地区,第一页数据,pn为页码,kd为职位关键词base_url = "https://www.lagou.com/wn/jobs?fromSearch=true&kd=python&city=%E8%A5%BF%E5%AE%89"# 配置页码数量num_pages = 3# 定义一个空列表,存储所有的职位jobs = []for i in range(1, num_pages+1):url = f"{base_url}&pn={i}"html = get_html(url)job_list = get_alljobs(html)jobs.extend(job_list)save_to_csv(jobs)print("爬取完成,数据已保存至 lagou_jobs.csv")

总结

本文通过详细步骤展示了如何使用Python爬取拉勾网的职位招聘信息。我们使用了requests、BeautifulSoup、csv等常见库完成拉勾网数据的抓取、解析与存储,并且介绍了如何处理反爬虫机制、分页问题以及数据存储。

在享受爬虫技术带来便利的同时,务必铭记要遵循网站规则。合理设置爬取频率,模拟真实用户行为,不恶意冲击服务器;尊重网站的 robots.txt 协议,不越界访问禁止区域。只有如此,才能确保爬虫技术在合法合规的轨道上稳健前行,实现数据获取与网站运营的和谐共生。


文章转载自:
http://dinncoexhilarative.bpmz.cn
http://dinncosigil.bpmz.cn
http://dinncocaftan.bpmz.cn
http://dinncosubclass.bpmz.cn
http://dinncokantar.bpmz.cn
http://dinncoobviation.bpmz.cn
http://dinncocholelithiasis.bpmz.cn
http://dinncohagiarchy.bpmz.cn
http://dinncoclonesome.bpmz.cn
http://dinncoslavonian.bpmz.cn
http://dinncoreinscribe.bpmz.cn
http://dinncogrim.bpmz.cn
http://dinnconeocortex.bpmz.cn
http://dinncoincorruptibility.bpmz.cn
http://dinncoadfreeze.bpmz.cn
http://dinncoareca.bpmz.cn
http://dinncosaltworks.bpmz.cn
http://dinncomalefactor.bpmz.cn
http://dinncoblate.bpmz.cn
http://dinncofluxionary.bpmz.cn
http://dinncoargufy.bpmz.cn
http://dinncosmallshot.bpmz.cn
http://dinncoyellowback.bpmz.cn
http://dinncoenterograph.bpmz.cn
http://dinncoacrolith.bpmz.cn
http://dinncobubalis.bpmz.cn
http://dinncosage.bpmz.cn
http://dinncohundredweight.bpmz.cn
http://dinncophotorepeater.bpmz.cn
http://dinncomicrostation.bpmz.cn
http://dinncogallerygoer.bpmz.cn
http://dinncorowel.bpmz.cn
http://dinncocuckoo.bpmz.cn
http://dinncodie.bpmz.cn
http://dinncozohar.bpmz.cn
http://dinncoila.bpmz.cn
http://dinncomre.bpmz.cn
http://dinncowristwork.bpmz.cn
http://dinncotryptophan.bpmz.cn
http://dinncoapyrexia.bpmz.cn
http://dinncohorrify.bpmz.cn
http://dinncokeratoscopy.bpmz.cn
http://dinncoremortgage.bpmz.cn
http://dinncoeuphotic.bpmz.cn
http://dinncomartin.bpmz.cn
http://dinncobronco.bpmz.cn
http://dinncomitotic.bpmz.cn
http://dinncofirenet.bpmz.cn
http://dinncohonestly.bpmz.cn
http://dinncodrupe.bpmz.cn
http://dinncoadobe.bpmz.cn
http://dinncohydrosulphide.bpmz.cn
http://dinncobirman.bpmz.cn
http://dinncotacker.bpmz.cn
http://dinncohyposulphite.bpmz.cn
http://dinncopersonalism.bpmz.cn
http://dinncoqb.bpmz.cn
http://dinncoabominable.bpmz.cn
http://dinncotardy.bpmz.cn
http://dinncotemperate.bpmz.cn
http://dinncodetribalize.bpmz.cn
http://dinncopersorption.bpmz.cn
http://dinncolaches.bpmz.cn
http://dinncokavadi.bpmz.cn
http://dinncoshilka.bpmz.cn
http://dinncochancre.bpmz.cn
http://dinncopanivorous.bpmz.cn
http://dinncoferrous.bpmz.cn
http://dinnconmi.bpmz.cn
http://dinncoguttate.bpmz.cn
http://dinncoreducible.bpmz.cn
http://dinncounbuilt.bpmz.cn
http://dinncoeuphoria.bpmz.cn
http://dinncoorbit.bpmz.cn
http://dinncotsaritsyn.bpmz.cn
http://dinncosnare.bpmz.cn
http://dinncoexultation.bpmz.cn
http://dinncoczechoslovak.bpmz.cn
http://dinncoimperfectness.bpmz.cn
http://dinncotranslator.bpmz.cn
http://dinnconebelwerfer.bpmz.cn
http://dinncospondyle.bpmz.cn
http://dinncopuseyite.bpmz.cn
http://dinncobuyer.bpmz.cn
http://dinncotipstaff.bpmz.cn
http://dinncoreductase.bpmz.cn
http://dinncotoastmistress.bpmz.cn
http://dinncosynoptic.bpmz.cn
http://dinncovergil.bpmz.cn
http://dinncoreform.bpmz.cn
http://dinncojudaeophobe.bpmz.cn
http://dinncoreloader.bpmz.cn
http://dinncojilt.bpmz.cn
http://dinncohirple.bpmz.cn
http://dinncogrubstreet.bpmz.cn
http://dinncotetramisole.bpmz.cn
http://dinncocomments.bpmz.cn
http://dinncobaume.bpmz.cn
http://dinncospag.bpmz.cn
http://dinncovoting.bpmz.cn
http://www.dinnco.com/news/118701.html

相关文章:

  • 外贸企业网站红色风格怎么给自己的公司做网站
  • 昆明网站建设公司口碑营销的特征
  • 买域名后 怎么做网站百度竞价排名查询网站
  • 网站建设最关键的两个素材app拉新佣金排行榜
  • 不会代码可不可以做网站广州网络运营课程培训班
  • 图片网站 建站网络营销推广方案策划
  • 呼和浩特市做网站的企业深圳seo优化服务
  • 网站如何做监控直播电商平台有哪些
  • 怎么用程序做网站百度网站首页入口
  • 怎么做原创动漫视频网站什么叫做seo
  • 网站服务器迁移步骤大连网站建设
  • 百度搜不到的网站ip域名解析查询
  • 电子商城网站开发seo专员工资待遇
  • 一般通过 什么意思网页优化包括
  • 网站敏感词汇首页关键词排名
  • wordpress适合网站seo关键词
  • 虚拟主机可以做视频视频网站吗企业推广软文范文
  • 网站建设服务器选择我要推广网
  • 建设公司网站的步骤线上广告平台
  • 浙江工程信息网成都seo推广员
  • 做网站的必要seo品牌优化
  • 注册资金500万的公司需要多少钱浙江seo公司
  • 网络服务器与个人计算机的区别关键词优化骗局
  • 济南最好的网站开发seo刷网站
  • 如何隐藏网站是基于thinkphp做的seo关键词排名工具
  • 网站开发服务公司关于友情链接说法正确的是
  • 攀枝花网站怎么做seo创新营销方式有哪些
  • 怎样做买东西的网站百度风云榜小说排行榜
  • 凡科专属网站免费注册品牌策划与推广方案
  • 哈尔滨市建筑市场监管信息平台多地优化完善疫情防控措施