爬取51job职位信息

该博客详细讲解了如何爬取51job网站上的职位信息。首先获取所有城市的key值,接着向包含城市信息的JS页面发起请求,通过解析获取总页数。然后逐页遍历,抓取每页的职位详情页URL,进一步提取所需职位详情。
摘要由CSDN通过智能技术生成

讲解:

首先获取一下所有城市对应的key值,找到所有城市所在的json字符串,向json所在的js页面发送请求,获取信息,然后从第一页获取总的页数,然后遍历所有页数,每到新的一页,找到所有职位信息的详情页url,遍历详情页,获取所要的职位信息。

代码:

import sqlite3,re,json
from urllib.request import urlopen, Request, urlretrieve
from urllib.error import HTTPError


def crawler_city_num():
    """
    请求并解析城市编码函数
    :return: 返回一个字典
    """
    # decode()函数默认使用utf8转化字节,但是51job网页采用的是gbk编码(<meta http-equiv="Content-Type" content="text/html; charset=gbk">) charset属性就是用来设置网页的编码方式的,所以需要使用decode('gbk')将bytes转化成str,与网页编码方式同步!
    js_connect=urlopen('https://js.51jobcdn.com/in/js/2016/layer/area_array_c.js?20180319').read().decode('gbk')
    str_list = js_connect.split('=')
    str_dict = str_list[1].replace(';', '')
    dic = json.loads(str_dict) # 把json字符串转化为字典
    new_dict = {
   }
    for key, value in dic.items():
        new_dict[value] = key
    return new_dict



class Crawler(object):
    def __init__(self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值