1.前言

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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

2.项目目标

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

3.项目准备

软件: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循环遍历这网址,实现多个网址请求。

4.反爬措施

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

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

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

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

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

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

5.项目实现

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) 

6.效果展示

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

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

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

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

7.小结

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

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

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

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

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

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

手把手教你使用Python网络爬虫获取招聘信息的更多相关文章

  1. 手把手教你用Python网络爬虫获取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

  2. 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

    [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...

  3. PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)

    1 三种信息类型的简介 xml : extensible markup language 与html非常相似 现有html后有xml xml是html发展来的 扩展 通用 json  类型 javas ...

  4. python网络爬虫之入门[一]

    目录 前言 一.探讨什么是python网络爬虫? 二.一个针对于网络传输的抓包工具fiddler 三.学习request模块来爬取第一个网页 * 扩展内容(爬取top250的网页) 后记 @(目录) ...

  5. 手把手教你使用Python爬取西刺代理数据(下篇)

    /1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...

  6. 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取

    版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 看完两篇,相信大家已经从开始的 ...

  7. 关于Python网络爬虫实战笔记①

    python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...

  8. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  9. Python网络爬虫

    http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛 ...

随机推荐

  1. lottery+web2

    lottery 题目分析 题目给了一个彩票网站,经过页面的探索,没有发现明显漏洞,进行目录扫描,发现该站存在.git文件 猜测存在源码泄露,使用githack利用: 获得网页源码,进行源码分析 源码审 ...

  2. MCU 51-2 LED and Digital tube Test

    点亮LED实验: #include <reg52.h> sbit LED1 = P1^; sbit LED2 = P1^; sbit LED8 = P1^; void main() { L ...

  3. 六十来行python代码完成一个文件分类器

    ​    你的桌面是否像这样的一样被各种文件给堆满了,但是每一个文件又不清楚是否后面还有作用,也不敢删除,自己一个一个转移又太麻烦了.没关系,今天我带大家用python一起来做一个文件归类器,一键进行 ...

  4. Ethical Hacking - Web Penetration Testing(12)

    XSS VULNS XSS - CROSS SITE SCRIPTING VULNS Allow an attacker to inject javascript code into the page ...

  5. 集训作业 洛谷P1143 进制转换

    这个题目就是让我们实现进制的转换. 我只会很简单的把他从一个别的进制转化成10进制,然后再继续转化成目标进制. #include<iostream> #include<cstdio& ...

  6. 太慢不能忍!CPU又拿硬盘和网卡开刀了!

    总线技术 我是CPU一号车间的阿Q,最近为了一件事儿搞得我挺烦的. 当初我们CPU工厂刚刚来到主板上建厂时,那时候主板上的单位还不多,跟我们打交道最多的就是内存那家伙了. 后来,键盘.鼠标.硬盘.网卡 ...

  7. 五分钟带你深入了解Redis

    相信phper都知道Redis是什么,既然如此,为表仪式感,首先我还是得说说什么是Redis. Redis是什么 redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是 ...

  8. paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器?

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器? 二次验证码小程序于谷歌身份验证器APP的优势 ...

  9. python-闭包和装饰器-01-闭包(closure)

    闭包(closure) 闭包就是在一个函数定义的内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包,如: def line(a, b): def cal( ...

  10. js冒泡排序和数组去重

    1.冒泡排序 <script>//声明一个数组 var arr=[1,88,66,22,35,65,4,52];//自执行函数 (function maopao(){ for(var i= ...