脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 详解如何使用Python网络爬虫获取招聘信息

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

2022-10-18 10:58Python爬虫与数据挖掘 Python

在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息。可是招聘信息有一些是错综复杂的。本文将为大家介绍用Python爬虫获取招聘信息的方法,需要的可以参考一下

前言

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

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

 

项目目标

获取招聘信息,并批量把地点、 公司名、工资 、下载保存在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、点击绿色小三角运行输入起始页,终止页。

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

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

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

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

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

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

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

 

小结

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

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

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

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

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

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

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

原文链接:https://mp.weixin.qq.com/s/FGn8NTitkSIxpmJZisGDtg

延伸 · 阅读

精彩推荐
  • Python如何使用Pytorch完成图像分类任务详解

    如何使用Pytorch完成图像分类任务详解

    如果你刚刚开始学习 PyTorch,并想学习如何做一些基本的图像分类,可以看看本文,这篇文章主要给大家介绍了关于如何使用Pytorch完成图像分类任务的相关资料...

    @Benron10872022-08-30
  • PythonPython实现字典序列ChainMap

    Python实现字典序列ChainMap

    容器数据类型包括数组list,字典dict以及元组tuple等。本篇主要介绍了ChainMap字典序列的使用,需要的朋友们下面随着小编来一起学习学习吧...

    一天一篇Python库8732021-12-02
  • Pythonpython自动从arxiv下载paper的示例代码

    python自动从arxiv下载paper的示例代码

    这篇文章主要介绍了python自动从arxiv下载paper的示例代码,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下...

    dangxusheng8722021-08-09
  • Pythonpython解析含有重复key的json方法

    python解析含有重复key的json方法

    今天小编就为大家分享一篇python解析含有重复key的json方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    dahlwuyn7742021-05-20
  • Python利用python模拟实现POST请求提交图片的方法

    利用python模拟实现POST请求提交图片的方法

    最近在利用python做接口测试,其中有个上传图片的接口,在网上各种搜索,各种尝试。下面这篇文章主要给大家介绍了关于利用python模拟实现POST请求提交图...

    Roy4152020-11-28
  • PythonPython grpc超时机制代码示例

    Python grpc超时机制代码示例

    这篇文章主要介绍了Python grpc超时机制代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...

    冷冰若水6272020-09-15
  • PythonPython3.5 创建文件的简单实例

    Python3.5 创建文件的简单实例

    下面小编就为大家分享一篇Python3.5 创建文件的简单实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    wangming520liwei9562021-02-06
  • Pythonpip命令无法使用的解决方法

    pip命令无法使用的解决方法

    今天小编就为大家分享一篇pip命令无法使用的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    崔先森LH9482021-03-04