什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(一)

article/2025/7/11 9:13:07

文章目录

  • 前言
  • 一、准备我们的库
  • 二、分析分析
  • 三、 代码
  • 四、数据展示
  • 小唐的心路历程

上一篇:没有啦!
下一篇:什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(二)


前言

有是小唐的数据分析作业,快别说,这真的历经千辛万苦,我一开始的时候,就真的想着,直接用一个请求然后去前程无忧网爬取,看来网页结构之后,就是两层url,这不对小唐来说just so so,结果,笑死一个是直接给我显示加载中(可以去我的提问那里看),原来是通过js代码读取外部json数据来动态更新的。requests只能获取网页的静态源代码,动态更新的内容取不到。用requests只是获取网页的静态源代码。不会执行页面中的js代码,你用time.sleep()等待是没有用的。只有用selenium 打开真正的浏览器。 才会执行页面中的js代码,用time.sleep()等待才有用。还有就是后面的滑动验证,我直接???,获取数据及其不稳定(主要是他还禁我ip,但是我ip池还不会用呜呜呜呜),后来还是我们的拉勾网香
拉钩网


一、准备我们的库

import re
import xlwt
import requests
from lxml import etree
from xlrd import open_workbook
from xlutils.copy import copy

二、分析分析

对于网站网址的充分了解有利于更加快速的去获取我们所需内容。我们选取的对象是拉钩网(https://www.lagou.com/)进行的数据收集和分析。通过对于网站的分析,本次文章所需的网址结构如下:
在这里插入图片描述
这下就好办了,我们看后面固定的网络结构,页面的话只有我们的pn在改变,其他都不要动

City:代表所要工作的城市
Kd: 代表所要选取的行业职位,将选取C/C++开发工程师、Java开发工程师、Python开发工程师、Web、HTML5开发工程师
Gj: 代表所在页面经验

再来看看我们的网页结构
在这里插入图片描述
这些就是我们要获取的结构,直接F12,送他回家
在这里插入图片描述
小家伙们藏在这里呀。我们可以很清楚的看到,我们的所有的招聘集合是处于class="list__YibNq"之下的,通过Xpath的查找功能可以很方便的帮我们的定位到对应的位置,再在每一条招聘集合中抽丝剥茧,找到对应元素位置,将其整合成数据集。
这样一分析下来,我们的数据获取是不是巨巨巨巨简单!!!,然后在把我们的数据放到Exel里面。把我们的代码加上一点带细节就完成了


三、 代码

import re
import xlwt
import requests
from lxml import etree
from xlrd import open_workbook
from xlutils.copy import copy
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
# url_q="https://www.lagou.com/wn/jobs?px=new&gj=%E5%9C%A8%E6%A0%A1%2F%E5%BA%94%E5%B1%8A&pn="
# url_h="&kd=Java&city=%E5%85%A8%E5%9B%BD"
# url_q="https://www.lagou.com/wn/jobs?px=new&gj=%E5%9C%A8%E6%A0%A1%2F%E5%BA%94%E5%B1%8A&pn="
# url_h="&kd=Python&city=%E5%85%A8%E5%9B%BD"
# url_q="https://www.lagou.com/wn/jobs?px=new&gj=%E5%9C%A8%E6%A0%A1%2F%E5%BA%94%E5%B1%8A&pn="
# url_h="&kd=C%2B%2B&city=%E5%85%A8%E5%9B%BD"
# url_q="https://www.lagou.com/wn/jobs?px=new&gj=%E5%9C%A8%E6%A0%A1%2F%E5%BA%94%E5%B1%8A&pn="
# url_h="&kd=html5&city=%E5%85%A8%E5%9B%BD"
url_q="https://www.lagou.com/wn/jobs?px=new&gj=%E5%9C%A8%E6%A0%A1%2F%E5%BA%94%E5%B1%8A&pn="
url_h="&kd=Python&city=%E5%85%A8%E5%9B%BD"
wb_name='Python.xls'
def spider(base_url,headers):response = requests.get(base_url, headers)#构建服务器response.encoding = response.apparent_encoding#获取编码格式response_text = response.text   # txt化页面内容selector = etree.HTML(response_text)#html化try:job_list=selector.xpath("//div[@class='list__YibNq']/div")print(job_list)try:for job in job_list:#岗位job_name=job.xpath("//div[@class='p-top__1F7CL']/a/text()[1]")# print(job_name)#位置job_add=job.xpath("//div[@class='p-top__1F7CL']/a/text()[2]")# print(job_add)#公司名job_cp=job.xpath("//div[@class='company-name__2-SjF']/a/text()")# print(job_cp)#公司现状job_cpinfo=job.xpath("//div[@class='industry__1HBkr']/text()")# print(job_cpinfo)#钱job_money=job.xpath("//div[@class='p-bom__JlNur']/span/text()")# print(job_money)#学历job_xl=job.xpath("//div[@class='p-bom__JlNur']/text()")# print(job_xl)#描述job_mess=job.xpath("//div[@class='il__3lk85']/text()")# print(job_mess)# 需求job_ir= job.xpath("//div[@class='ir___QwEG']/span/text()")print("解析成功——————开始存储数据")save(job_name,job_add,job_cp,job_cpinfo,job_money,job_xl,job_mess,job_ir)except BaseException as e:print(e)print(e.__traceback__.tb_lineno)print("本条解析失败,跳过")except BaseException as e:print(e)print(e.__traceback__.tb_lineno)print("本页爬取失败,跳过")
def save(name,add,cp,cpinfo,money,xl,mess,ir):try:r_xls = open_workbook(wb_name)  # 读取excel文件except BaseException as e:print(e)print(e.__traceback__.tb_lineno)#没有读取到我们就创建file = xlwt.Workbook()sheet1 = file.add_sheet(u'表1', cell_overwrite_ok=True)sheet1.write(0, 0, "岗位")sheet1.write(0, 1, "位置")sheet1.write(0, 2, "公司名")sheet1.write(0, 3, "公司现状")sheet1.write(0, 4, "工资")sheet1.write(0, 5, "学历")sheet1.write(0, 6, "描述")sheet1.write(0, 7, "需求")file.save(wb_name)try:r_xls = open_workbook(wb_name)row = r_xls.sheets()[0].nrows  # 获取已有的行数excel = copy(r_xls)  # 将xlrd的对象转化为xlwt的对象worksheet = excel.get_sheet(0)  # 获取要操作的sheetfor i in range(0, len(name)):worksheet.write(row + i, 0, name[i])worksheet.write(row + i, 1, add[i])worksheet.write(row + i, 2, cp[i])worksheet.write(row + i, 3, cpinfo[i])worksheet.write(row + i, 4, money[i])worksheet.write(row + i, 5, xl[i])worksheet.write(row + i, 6, mess[i])worksheet.write(row + i, 7, ir[i])excel.save(wb_name)print("存储成功")except BaseException as e:print(e)print(e.__traceback__.tb_lineno)print("存储失败")def run():for page in range(1,31):print("正在解析"+str(page)+"页")url=url_q+str(page)+url_hprint(url)spider(url, headers)
run()

四、数据展示

在这里插入图片描述


小唐的心路历程

这个是真的,小唐第一次遇到这种网站,之前的51,是真的有被离谱到,给大家看看,我一开始的时候真的以为是显式等待和隐式等待的问题结果。。
在这里插入图片描述
就是这个网站或者是通过F12控制台分析页面数据加载的链接,找到真正json数据的地址进行爬取。在页面上点击右键,右键菜单中选 “查看网页源代码”。
本来以为成功了
在这里插入图片描述
结果。。。(禁我ip,欺负我不会用ip池)
在这里插入图片描述
不过好在问题都解决了,也获得了自己想要的信息,啊哈哈哈哈,爬出来的那一刻真的超级有成就感!!!


http://chatgpt.dhexx.cn/article/iOtWUIUQ.shtml

相关文章

拉勾网的反爬介绍和解决方法(更新时间:2019/2/20)

拉勾网的反爬介绍和解决方法(更新时间:2019/2/20) 目录直达: 文章目录 拉勾网的反爬介绍和解决方法(更新时间:2019/2/20)1. 前言2. 简述3. 反爬介绍3.1、对于职位的详情页和公司的详情页的反爬…

应对反爬如何爬取拉勾网信息(非常详细)

目录 前期准备请求头Cookies问题手动提取Cookies和自动Cookies相结合自动提取Cookies实现 手动提取Cookies实现 页面分析代码实现 前期准备 我们知道百度其实就是一个爬虫,但是对方的服务器是没有对百度进行反爬的,所以为了防止对方服务器的反爬&#x…

【Python】模拟登陆并抓取拉勾网信息(selenium+phantomjs)

环境 python3.5pip install seleniumphantomjs-2.1.1pip install pyquery 代码 # -*- coding:utf-8 -*-# 防止print中文出错 import time import sys import io sys.stdout io.TextIOWrapper(sys.stdout.buffer, encodinggb18030)from pyquery import PyQuery as pq from se…

Python爬虫实战,requests模块,Python实现拉勾网求职信息数据分析与可视化

前言 利用requests爬取拉勾网求职信息数据分析与可视化,废话不多说。 让我们愉快地开始吧~ 开发工具 **Python版本:**3.6.4 相关模块: requests模块; re模块; os模块 jieba模块; pandas模块 num…

爬虫学习之17:爬取拉勾网网招聘信息(异步加载+Cookie模拟登陆)

很多网站需要通过提交表单来进行登陆或相应的操作,可以用requests库的POST方法,通过观测表单源代码和逆向工程来填写表单获取网页信息。本代码以获取拉勾网Python相关招聘职位为例作为练习。打开拉钩网,F12进入浏览器开发者工具,可…

python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多)

python成功爬取拉勾网(一个小白的心里路程) 最开始想爬取拉钩是因为半年前上python实验课的时候,老师给了两个任务,一个时爬取糗百的笑话内容,另一个时爬取拉勾网的职位信息,当时因为课时紧张的缘故&#…

爬虫实例二:爬取拉勾网招聘信息

爬虫实例二:爬取拉勾网招聘信息 如果是第一次看本教程的同学,可以先从一开始: 爬虫实例一:爬取豆瓣影评 欢迎关注微信公众号:极简XksA 微信账号:xksnh888 转载请先联系微信号:zs820553471 …

python爬虫之爬取拉勾网

这次要爬取拉勾网,拉勾网的反爬做的还是很不错的啊,因为目标网站是Ajax交互的我一开始是直接分析json接口来爬取的,但是真的很麻烦,请求头一旦出点问题就给识别出来了后续我就改了一下方法用selenium来模拟浏览器去获取 招聘求职…

爬虫练习六:爬取拉勾招聘信息

1. 明确需求 1. 初学爬虫时,看着各路大佬以拉勾网为案例进行爬虫讲解,自己也这样尝试。结果因为个人水平实在太低,很快就触发反爬虫机制,甚至连个人的账号都被封禁。所以这次想要重新挑战一下,爬取拉勾展示的招聘数据。…

用接口登录拉勾网

前段时间一直忙于公司项目的测试工作导致一周多没有撸代码,所以今天通过悠悠是博客学习了一下如何让用接口登录拉勾网 下面介绍一下吧!分享下经验以及心得,,虽然我知道也没什么人会看! 首先呢要先登录拉钩网的网站&am…

拉勾网登录问题

拉钩登录问题,在参考别人的博客后,解决啦 class lagouSpider(CrawlSpider):name lagouallowed_domains [www.lagou.com]start_urls [https://www.lagou.com/]agent "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/" \"537.36 (…

selenium实例登陆拉勾网 外加手动验证验证码

selenium模拟登陆拉钩网 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import os, json, time from urllib import parse from lxml import etree from fake_…

python -- 拉勾网爬虫模拟登录

入门爬虫一段时间,最近在做一个拉勾网的数据爬虫分析,项目也快接近尾声了,于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反爬虫机制还是可以的,一开始用scrapy shell 分析拉勾网,发现拉勾网要校验usera…

基于Python的拉勾网的模拟登录获取cookie

lagou_login 拉勾网的模拟登录获取cookie,为爬虫做准备, 喜欢的点个赞,谢谢 入门爬虫一段时间,最近在做一个拉勾网的数据爬虫分析,项目也快接近尾声了,于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反…

selenium模拟登陆拉勾网

初学selenium,尝试了一下模拟登录拉勾网,感觉还挺好玩的 就剩下最后的验证码不会处理了。。。 思路就是在网页代码中找到对应的框的属性进行查询,然后点击、输入就进行了。 之后就会看到Chrome弹出来自动完成一系列动作,感觉很…

如何高效地学习编程语言?

学习编程语言是一种技巧:做好了,你会感受到掌握新事物之后的快感;做不好,就会接二连三的沮丧,甚至放弃。下面我将介绍一些技巧与方法,以便帮助大家高效地学习。 持续测试自己以抵抗胜任力错觉 最不济的学习…

完全零基础,到底该怎样学习编程?

学习编程的过程,大致如下: 看书、看博客、学课程或者看视频等 模仿着书上或者博客的代码,进行复现,复现不重要,思考才是关键 ⚠️ 思考学习别人思路后,脱离书本和博客,完全自己实现功能 自己…

学习编程先学什么?怎么学习编程?

怎么学习编程 随着IT行业的快速发展,现在越来越多的人看中IT行业的前景,很多的人选择IT行业。其中大部分人会选择了学习编程语言,那么,怎么学习编程语言、学习编程先学什么就是人们最常遇到的困难,因此,小编…

我是如何学习编程的

我是如何学编程的 前世因今世果一轮回一回眸理论基础资源选择编程没有捷径合格程度兴趣培养学习时长解决问题推荐资源 学习资源推荐 微信扫码关注公众号 :前端前端大前端,追求更精致的阅读体验 ,一起来学习啊关注后发送关键资料,免费获取一整…

骨灰级程序员告诉你,怎样学习编程,才能快速从0基础,变成编程大师

本文章向大家介绍怎样学习编程,才能快速从0基础,变成编程大师,主要包括骨灰级程序员告诉你,怎样学习编程,才能快速从0基础,变成编程大师使用实例、应用技巧、基本知识点总结和需要注意事项,具有…