爬取tx招聘的小记录

# -*- ecoding: utf-8 -*-
# @ModuleName: SpiderTX
# @Function: 
# @Author: C
# @Time: 2021/10/28 19:46
import module.spider
import json
import jsonpath
import urllib.request
import xlwt
class Spidertx(object):
        base_url = "https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1635421641765&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=40001&attrId=&keyword=&pageIndex="
        use_url = "&pageSize=10&language=zh-cn&area=cn"
        def __init__(self):
            self.begin_page = int(input("请输入起始页:"))
            self.end_page = int(input("请输入终止页:"))




def load_tx(spidertx):

    page = 0
    headers = {
        "User-Agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 89.04389.114 Safari/537.36"
    }
    xlsx = xlwt.Workbook(encoding="utf-8")
    sheet = xlsx.add_sheet("清洗完成的数据", True)
    style = xlwt.XFStyle()
    font = xlwt.Font()
    font.name = 'Calibri'  # 设置字体
    # font.colour_index = 4  # 设置字体颜色
    font.height = 400  # 字体大小
    style.font = font
    sheet.write(0, 0, "城市", style)
    sheet.write(0, 1, "职业名称", style)
    sheet.write(0, 2, "职业描述", style)
    for i in range(spidertx.begin_page, spidertx.end_page):
        i = str(i)
        url = spidertx.base_url + i + spidertx.use_url
        req = urllib.request.Request(url, headers=headers)
        resp = urllib.request.urlopen(req)
        html = resp.read().decode("utf-8")
        json0 = json.loads(html)
        Posts = json0.get("Data").get("Posts")
        for i in range(0,len(Posts)):
            post = Posts[i]
            sheet.write(page+i+1, 0, post.get("LocationName"), style)
            sheet.write(page+i+1, 1, post.get("RecruitPostName"), style)
            sheet.write(page+i+1, 2, post.get("Responsibility"), style)

            if i == len(Posts)-1:
                page += len(Posts)

            # list.append(jsonpath.jsonpath(json0, "$.Data.Posts" + "[" + i + "]" + ".LocationName")[0])
            # list.append(jsonpath.jsonpath(json0, "$.Data.Posts"+"["+ i +"]"+".RecruitPostName")[0])
            # list.append(jsonpath.jsonpath(json0, "$.Data.Posts" + "[" + i + "]" + ".Responsibility")[0])
    xlsx.save("腾讯招聘.xls")


if __name__ == '__main__':

    spidertx = Spidertx()

    load_tx(spidertx)

小总结一下就是:

  • 在读取到数据的时候就可以写入表格中!
  • 动态获取数据的可以通过F12中查看XHR获取到接口
  • json可以用字典类型处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值