专栏首页飞总聊IT手把手教你使用Python网络爬虫获取招聘信息

手把手教你使用Python网络爬虫获取招聘信息

/1 前言/

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

/2 项目目标/

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

/3 项目准备/

软件:PyCharm

需要的库:requestslxmlfake_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、可以选择自己喜欢的分类,获取工作,找到自己喜欢工作。

本文分享自微信公众号 - 飞总聊IT(feiitworld)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你使用Python网络爬虫获取菜谱信息

    今天教大家去爬取下厨房的菜谱 ,保存在world文档,方便日后制作自己的小菜谱。

    Python进阶者
  • 手把手教你利用Python网络爬虫获取APP推广信息

    CPA之家app推广平台是国内很大的推广平台。该网址的数据信息高达数万条,爬取该网址的信息进行数据的分析。

    Python进阶者
  • 手把手带你抓取智联招聘的“数据分析师”岗位!

    很多网友在后台跟我留言,是否可以分享一些爬虫相关的文章,我便提供了我以前写过的爬虫文章的链接(如下链接所示),大家如果感兴趣的话也可以去看一看哦。在本文中,我将...

    1480
  • 手把手教你使用Python网络爬虫获取小说

    随着网络的时代的发展,人们很少去安静的去看一本书。而是选择看网络小说,可是网络小说有些要钱才能看。

    Python进阶者
  • 手把手教你利用Python网络爬虫获取旅游景点信息

    当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格、开放时间、用户的评论等。

    用户1564362
  • 手把手教你利用Python网络爬虫获取旅游景点信息

    当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格、开放时间、用户的评论等。

    Python进阶者
  • 在知乎上学 Python - 爬虫篇

    知乎是个好地方。虽然近年来,为了吸引更多的用户,知乎的定位与早期略有点偏离。但从内容质量和专业性来说,知乎仍然是国内数一数二的知识型社区。不少同学都是通过知乎发...

    Crossin先生
  • 手把手教你用Python网络爬虫获取头条所有好友信息

    大家好,我是黄伟。今日头条我发觉做的挺不错,啥都不好爬,出于好奇心的驱使,小编想获取到自己所有的头条好友,

    Python进阶者
  • 手把手教你利用Python网络爬虫获取链家网的房产信息

    随着人们生活方式的的提高,房子成为了我们必不可少的一部分。而网上的信息太过于复杂,为了了解最近房价的变化趋势。小编以链家这个网站为例,抓取房价的信息。

    用户7466307

扫码关注云+社区

领取腾讯云代金券