详解如何使用Python网络爬虫获取招聘信息

目录
  • 前言
  • 项目目标
  • 项目准备
  • 反爬措施
  • 项目实现
  • 效果展示
  • 小结

前言

现在在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息。可是招聘信息有一些是错综复杂的。而且不能把全部的信息全部罗列出来,以外卖的58招聘网站来看,资料整理的不清晰。

项目目标

获取招聘信息,并批量把地点、 公司名、工资 、下载保存在txt文档。

项目准备

软件:PyCharm

需要的库:requests、lxml、fake_useragent

网站如下:

https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID={}

点击下一页时,ClickID={}每增加一页自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。

反爬措施

该网站上的反爬主要有两点:

1、 直接使用requests库,在不设置任何header的情况下,网站直接不返回数据

2、同一个ip连续访问多次,直接封掉ip,起初我的ip就是这样被封掉的。

为了解决这两个问题,最后经过研究,使用以下方法,可以有效解决。

1、获取正常的 http请求头,并在requests请求时设置这些常规的http请求头。

2、使用 fake_useragent ,产生随机的UserAgent进行访问。

项目实现

1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址,代码如下所示。

import requests
from lxml import etree
from fake_useragent import UserAgent

class  Zhaopin(object):
    def __init__(self):
        self.url = "https://gz.58.com/job/pn2/?param7503=1&from=yjz2_zhaopin&PGTID=0d302408-0000-3efd-48f6-ff64d26b4b1c&ClickID={}"  # /zhuanchang/:搜索的名字的拼音缩写

    def main(self):
        pass

if __name__ == '__main__':
    Spider =  Zhaopin()
    Spider.main()

2、随机产生UserAgent。

for i in range(1, 50):
    self.headers = {
        'User-Agent': ua.random,
    }

3、发送请求,获取响应, 页面回调,方便下次请求

def get_page(self, url):
    res = requests.get(url=url, headers=self.headers)
    html = res.content.decode("utf-8")
    return html

4、xpath解析找到对应的父节点。

def page_page(self, html):
    parse_html = etree.HTML(html)
    one = parse_html.xpath('//div[@class="main clearfix"]//div[@class="leftCon"]/ul/li')

5、for遍历,定义一个变量food_info保存,获取到二级页面对应的菜 名、 原 料 、下 载 链 接

for l in one:
    o = l.xpath('.//a/span[1]/text()')[0].strip()
    t = l.xpath('.//a//span[@class="name"]/text()')[0].strip()
    f = l.xpath('.//p[@class="job_salary"]/text()')
    thr = l.xpath('.//div[@class="comp_name"]//a/text()')[0].strip()
    for e in f:
        boss = '''

 %s:||%s:
 公司:%s,
 工资:%s元/月
 =========================================================
                                ''' % (o, t, thr, e)
    print(str(boss)

6、将结果保存在txt文档中,如下所示。

f = open('g.txt', 'a', encoding='utf-8')  # 以'w'方式打开文件
f.write(str(boss))
# print(house_dict)
f.write("\n")  # 键和值分行放,键在单数行,值在双数行
f.close()

7、调用方法,实现功能。

html = self.get_page(url)
self.page_page(html)

效果展示

1、点击绿色小三角运行输入起始页,终止页。

2、运行程序后,结果显示在控制台,如下图所示。

3、保存txt文档到本地,如下图所示。

4、双击文件,内容如下图所示。

小结

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、本文章就Python爬取招聘网,在应用中出现的难点和重点,以及如何防止反爬,做出了相对于的解决方案。

3、介绍了如何去拼接字符串,以及列表如何进行类型的转换。

4、代码很简单,希望能够帮到你。

5、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

6、可以选择自己喜欢的分类,获取工作,找到自己喜欢工作。

以上就是详解如何使用Python网络爬虫获取招聘信息的详细内容,更多关于Python爬虫获取招聘信息的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python实现爬取腾讯招聘网岗位信息

    目录 介绍 效果展示 实现思路 源码展示 介绍 开发环境 Windows 10 python3.6 开发工具 pycharm 库 numpy.matplotlib.time.xlutils.copy.os.xlwt, xlrd, random 效果展示 代码运行展示 实现思路 1.打开腾讯招聘的网址右击检查进行抓包,进入网址的时候发现有异步渲染,我们要的数据为异步加载 2.构造起始地址: start_url = ‘https://careers.tencent.com/tencentcareer

  • python使用requests库爬取拉勾网招聘信息的实现

    按F12打开开发者工具抓包,可以定位到招聘信息的接口 在请求中可以获取到接口的url和formdata,表单中pn为请求的页数,kd为关请求职位的关键字 使用python构建post请求 data = { 'first': 'true', 'pn': '1', 'kd': 'python' } headers = { 'referer': 'https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&a

  • python爬虫判断招聘信息是否存在的实例代码

    在找工作的时候,我们会选择上网查询招聘的信息,或者是通过一些招聘会进行现场面试.但由于信息更新不及时,有一些岗位会出现下架的情况,如果我们不注意的话,可能就扑了空.在时间上耽误了不说,面试的信息也会受到一点点打击.今天小编就教大家python爬虫来判断招聘信息是否存在. 首先这里需要一个判断某条招聘是否还挂在网站上的方法,这个暂时想到了还没弄,然后对于发布时间在两个月之前的数据,就不进行统计计算. 以下是完成代码: { "_id" : ObjectId("5a30ad2068

  • Python爬虫实战演练之采集拉钩网招聘信息数据

    目录 本文要点: 环境介绍 本次目标 爬虫块使用 内置模块: 第三方模块: 代码实现步骤: (爬虫代码基本步骤) 开始代码 导入模块 发送请求 解析数据 加翻页 保存数据 运行代码,得到数据 本文要点: 爬虫的基本流程 requests模块的使用 保存csv 可视化分析展示 环境介绍 python 3.8 pycharm 2021专业版 激活码 Jupyter Notebook pycharm 是编辑器 >> 用来写代码的 (更方便写代码, 写代码更加舒适) python 是解释器 >&

  • Python爬虫实例——scrapy框架爬取拉勾网招聘信息

    本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏可以看到搜索结果页的url为: 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=', 尝试将?后的参数删除, 发现访问结果相同. 打开Chrome网页调试工具(F12), 分析每条搜索结果

  • Python爬虫框架Scrapy实战之批量抓取招聘信息

    网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站网页的url地址,所以,要有个技巧去抓取网站的所有html页面.Scrapy是纯Python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便- Scrapy 使用wisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求.整体架构如下图所示: 绿线是数据流向,首先从初始URL 开始,Scheduler 会将其

  • 详解如何使用Python网络爬虫获取招聘信息

    目录 前言 项目目标 项目准备 反爬措施 项目实现 效果展示 小结 前言 现在在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息.可是招聘信息有一些是错综复杂的.而且不能把全部的信息全部罗列出来,以外卖的58招聘网站来看,资料整理的不清晰. 项目目标 获取招聘信息,并批量把地点. 公司名.工资 .下载保存在txt文档. 项目准备 软件:PyCharm 需要的库:requests.lxml.fake_useragent 网站如下: https://gz.58.com/job/

  • Python网络爬虫中的同步与异步示例详解

    一.同步与异步 #同步编程(同一时间只能做一件事,做完了才能做下一件事情) <-a_url-><-b_url-><-c_url-> #异步编程 (可以近似的理解成同一时间有多个事情在做,但有先后) <-a_url-> <-b_url-> <-c_url-> <-d_url-> <-e_url-> <-f_url-> <-g_url-> <-h_url-> <--i_ur

  • 详解Python网络爬虫功能的基本写法

    网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 1. 网络爬虫的定义 网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来.这样看来,网络爬虫就是一个爬行程序,一个抓取网页的

  • python网络爬虫精解之pyquery的使用说明

    目录 一.pyquery的介绍 二.pyquery的使用 1.初始化工作 字符串 URL 文件初始化 2.查找节点 (1)查找子节点 (2)匹配父节点 (3)匹配兄弟节点 3.遍历 4.获取信息 (1)获取属性 (2)获取文本 5.节点操作 (1)为某个节点添加或删除一个class (2)attr.text.html (3)remove 6.伪类选择器 pyquery的使用 一.pyquery的介绍 使用pyquery需要在Web和了解jQuery的基础上,使用该CSS选择器. 二.pyquer

  • python网络爬虫精解之正则表达式的使用说明

    目录 一.常见的匹配规则 二.常见的匹配方法 1.match() 2.search() 3.findall() 4.sub() 5.compile() 一.常见的匹配规则 二.常见的匹配方法 1.match() match()方法从字符串的起始位置开始匹配,该方法有两个参数,第一个是正则表达式,第二个是需要匹配的字符串: re.match(正则表达式,字符串) 如果该方法匹配成功,返回的是SRE_Match对象,如果未匹配到,则返回None. 返回成功后有两个方法,group()方法用来查看匹配

  • python网络爬虫精解之XPath的使用说明

    目录 一.XPath的介绍 二.XPath使用 1.选取所有节点 2.获取子节点 3.获取父节点 4.属性匹配 5.文本获取 6.属性获取 7.属性多值匹配 8.多属性匹配 9.按序选择 10.节点轴选择 XPath的使用 一.XPath的介绍 XPath的几个常用规则: 表达式 描述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 - 选取当前节点的父节点 @ 选取属性 二.XPath使用 1.选取所有节点 test01.

  • 详解如何用Python写个听小说的爬虫

    目录 书名和章节列表 音频地址 下载 完整代码 总结 在路上发现好多人都喜欢用耳机听小说,同事居然可以一整天的带着一只耳机听小说.小编表示非常的震惊.今天就用 Python 下载听小说 tingchina.com的音频. 书名和章节列表 随机点开一本书,这个页面可以使用 BeautifulSoup 获取书名和所有单个章节音频的列表.复制浏览器的地址,如:https://www.tingchina.com/yousheng/disp_31086.htm. from bs4 import Beaut

  • python网络爬虫精解之Beautiful Soup的使用说明

    目录 一.Beautiful Soup的介绍 二.Beautiful Soup的使用 1.节点选择器 2.提取信息 3.关联选择 4.方法选择器 5.CSS选择器 一.Beautiful Soup的介绍 Beautiful Soup是一个强大的解析工具,它借助网页结构和属性等特性来解析网页. 它提供一些函数来处理导航.搜索.修改分析树等功能,Beautiful Soup不需要考虑文档的编码格式.Beautiful Soup在解析时实际上需要依赖解析器,常用的解析器是lxml. 二.Beautif

  • python网络爬虫之模拟登录 自动获取cookie值 验证码识别的具体实现

    目录 1.爬取网页分析 2.验证码识别 3.cookie自动获取 4.程序源代码 chaojiying.py sign in.py 1.爬取网页分析 爬取的目标网址为:https://www.gushiwen.cn/ 在登陆界面需要做的工作有,获取验证码图片,并识别该验证码,才能实现登录. 使用浏览器抓包工具可以看到,登陆界面请求头包括cookie和user-agent,故在发送请求时需要这两个数据.其中user-agent可通过手动添加到请求头中,而cookie值需要自动获取. 分析完毕,实践

  • python网络爬虫学习笔记(1)

    本文实例为大家分享了python网络爬虫的笔记,供大家参考,具体内容如下 (一)   三种网页抓取方法 1. 正则表达式: 模块使用C语言编写,速度快,但是很脆弱,可能网页更新后就不能用了. 2.Beautiful Soup 模块使用Python编写,速度慢. 安装: pip install beautifulsoup4 3. Lxml 模块使用C语言编写,即快速又健壮,通常应该是最好的选择. (二) Lxml安装 pip install lxml 如果使用lxml的css选择器,还要安装下面的

随机推荐