admin 管理员组

文章数量: 887172


2024年2月24日发(作者:广告联盟流量变现赚钱)

网絡与通信枝术China

Computer

&

Communication信IB与电as2021年第4期基于Python爬虫技术的51job网站内容爬取甯文龙毛红霞*(四川大学锦城学院计算机与软件学院,四川成都

611731)摘

要:51

job前程无忧网站是一个全国著名的招聘网站,里面包含着成千上万的招聘信息,在这些招聘信息中存在

大量无用的垃圾信息.为了快速获得所需要的招聘信息,本文采用Python的爬虫技术将51job网站上的招聘信息爬取到

本地,再进行分析预处理,可以更加直观地对未来的岗位进行研究与选择.关键词:Python;网络爬虫;51

job网站中图分类号:TP393.

092;

TP312.

1

文献标识码:A

文章编号:1003-9767

(2021)

04-180-03Content

Crawling

of

51job

Website

based

on

Python

Crawler

TechnologyNing

Wenlong,

Mao

Hongxia(School

of Computer

and

Software,

Jincheng College

of

Sichuan

University,

Chengdu

Sichuan

611733,

China)Abstract:

51job

is

a

famous

recruitment

website

in

China.

It

contains

thousands

of

recruitment

information.

There

are

a

lot

of

useless

and

disturbing

spam

information

in

these

recruitment

information.

In

order

to

quickly

obtain

the

required

recru辻ment

information,

we

use

Python

crawler

technology

to

crawl

the

recruitment

information

on

51job

website

to

the

local,

and

then

analyze

and

preprocess

it,

which

can

help

us

to

research

and

select

the

future

position

more

intuitively

and

ds:

Python;

web

crawler;

51job

website0引言在互联网快速发展的背景下,人们不再满足于选择性少、

局限性大的线下求职的方式,更加倾向于选择面广、局限性

低的网上求职方式,因此网上求职网站应运而生。虽然求职

信息存放在网页源码的一串json数据里,所以先将网页源码

爬取保存到本地,通过re方法爬取招聘信息并保存为Excel

数据,最后对数据进行预处理,对工资进行单位统一并填补

空缺值。网站能给人们带来大量的岗位需求信息,但是随着人们对于

网上求职需求的日益增多,出现了各式各样的求职网站,并

1相关技术分析且每个网站上的求职信息也较为复杂,人们在这些冗杂的岗

位需求信息中找到比较合适的岗位信息是较为困难的。在科

学技术高速发展的带动下,客观大数据的统计分析应用已经

1.1

Python网络爬虫的原理随着网络的迅速发展,万维网成为大量信息的载体,如

何有效地提取并利用这些信息成为一个巨大的挑战。网络爬

虫是一种程序或者脚本,能够按照一定的规则自动抓取万维

网的信息[1]o成为现代社会发展的推动力。本文首先利用Python提供的爬

虫技术将网页源码信息爬取到本地,再通过一些预处理方法

使一些较为冗余的信息变得更加精简。本文采用Anaconda3平台及谷歌浏览器,通过模拟人类

登录和点击网络的操作来爬取内容。以前程无忧网站为例,

本文采用cookie方法登录,进入登录界面后打开开发者工具,

1.2登录处理在相同域名间通过Cookie和令牌传递实现登录访问[2]o

当用户第一次正确输入密码并进入网站,网站会为用户分发

一个出入门牌,在一定的时间内使用门牌就可以直接进入大

门,无须每次都输入密码。但是这个出入牌是临时的,只在

一段时间内有效。然后手动登录,在右侧这一选项中查找所需

要的信息并复制到rqg请求头部里,实现模拟登录。同时,

根据url的变化规律实现翻页。此外,因为需要爬取的招聘

作者简介:甯文龙(2000-),男,四川成都人,本科在读。研究方向:Python网络爬虫。通信作者:毛红霞(1981-),女,宁夏石嘴山人,硕士研究生,副教授。研究方向:大数据、人工智能。E-mail:

56734747@qq.

com。180

2021年第4期China

Computer

&

Communication信愿与电IS1.3爬取动态网页动态网页是交互式网页,无须改变网页源代码,但是显

Cookie、Json、urllib^

time、re

openpyxL2.3使用cookie实现模拟登录首先进入前程无忧网站登录界面,按F12打开开发者工

示内容可以根据时间、环境或者操作者发生改变。网页可以

根据用户的不同浏览方式和各种请求自动显示内容,可以自

动更替或者和用户进行一些互动。目前,动态网页开发技术

主要有JSP、ASP和PHP⑶。具,切换到Network选项卡,勾选Preverse

log选项,然后

使用账号、密码进行登录,在左侧列表找到

这一选项。在此选项寻找loginurk

cookie和useragent代码

2爬虫模型设计2.1分析网页结构网页结构化信息提取是指从网页中提取出结构化的

文本数据信息,当用户进行搜索的时候,网址会跳转到以

内容,然后复制,因为复制的内容是字符串形式,需要转换

为字典形式,然后再复制到代码rqg请求头部里,此时完成

模拟登录步骤[5'8]o2.4

分析URL51job前程无忧网站是一个动态网页,需要分析

它的URL来实现翻页操作,如图1所示。经过分析发

现,/list/

是不变的部分,对于

开头的url里,任意检查一个招聘信息,可

以得到它的标签、属性、HTML代码等。经过对网页进行分析,

发现需要爬取的信息及内容都是以json格式存在于

标签里,然而根据

参考文献[10]中的BeautifulSoup库来直接爬取51job的网页

000000,000000,0000,00,9,最前面的6个0是地区码,全国

范围就是默认的6个0,后面的数字无影响。由于不做地区

是无法成功的。在Python中,re模块就是一个用于处理正则

限制,所以说这一串不变,默认全国6个0。99是薪资范围,

默认不限薪资(99)。%25E8%25AE%25A1%25E7%25AE%

表达式的模块,可以通过分析json来爬取招聘信息⑷。它比

Xpath或者BeautifulSoup更直接,不用分析网页结构与路径,

直接分析json即可爬取。2597%25E6%259C%25BA代表“计算机”这一职位信息,

数字2是固定的。中的1代表页数page,本文爬取数

据实现翻页操作就是通过修改hlml前面的数字实现的。最

2.2导入模型需要使用的库使用import语句导入所需要的库,如chardet、requests后面的则是动态网页的一些参数和公司规模、学历要求等隐

藏的筛选条件,本文暂不做处理。A

/list/000000,000000,0000,00,9,99,%25E8%25AE%25A1%25E7%25AE%2597%25E6%259C%25BA,2,?lang=c&postchannel=0000&workyear=99&cotype=99°r图1网址示意图2.5爬取数据

2.5.1爬取网页内容到本地本文定义一个getjobjist方法,参数分别为要输入的

职位信息和页数。之前分析了

url,先把默认的部分写上去,

asf:(html)2.5.2爬取本地网页源码打开本地文件查看源码,寻找所需要的招聘信息,发

把变化的职位信息和页数分别用变量key和page来控制。对

于key

(默认为空),因为输入的是汉字,而url里面是汉字

编码的ASCII字符串,调用方法(实验时

现它在