zoukankan      html  css  js  c++  java
  • 查看解放号的一些Python岗

    查看一些解放号的外包数据。

    """
        爬取解放号的数据
    """
    
    # 先搜索,找到我们需要的数据,然后通过开发者工具看看它是从哪里来的
    # 首先打开解放号首页,然后搜索python
    # 查看第一条
    # 发现它的数据来源为:https://www.jfh.com/jfportal/workMarket/getRequestData
    # 而且里面有json数据,开始构造url
    
    # 首先是新建文件
    import csv
    import pprint
    import random
    
    import requests
    import time
    import json
    
    keyword = input('请输入要搜索的关键词:') # 输入关键词进行爬取
    
    #  新建文档
    f = open(f'20211102解放号数据-{keyword}.csv', mode='a', encoding='utf-8-sig', newline='')
    
    # csv写入器
    csvWriter = csv.DictWriter(f, fieldnames=[
        '标题',
        '编号',
        '类型',
        '投标人数',
        '发布日期',
        '截止日期',
        '状态',
        '价格',
        '详情页',
    ])
    # 写入表头
    csvWriter.writeheader()
    # 请求头
    headers = {
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
    }
    
    # 开始多页爬取
    for page in range(1, 11):
        time.sleep(random.randint(2,10))
        # 由于请求方式是post的,所以需要参数,这里也是多页爬取的关键
        data = {
            "putTime": "",
            "minPrice": "",
            "maxPrice": "",
            "isRemoteWork": "",
            "orderCondition": "0",
            "orderConfig": "1",
            "pageNo": page, # 页码
            "searchName": str(keyword), # 搜索的关键词
            "fitCode": "0",
            "workStyleCode": "",
            "jfId": "235066803",
            "buId": "",
            "currentBuid": "",
            "jieBaoType": "",
            "login": "1",
            "city": "",
            "orderType": "",
            "serviceTypeKey": "",
            "webSite": "",
            "webSign": "",
            "source": "1",
        }
    
        # 构造url
        url = 'https://www.jfh.com/jfportal/workMarket/getRequestData' # 这是请求的url,不是所看到的那些网址
    
        response = requests.get(url=url, headers=headers, data=data)
        # 打印json看是否有需要的数据
        # print(response.json()) #确实有需要的数据,通过分析,数据都存储在resultList里
        # 把数据剔提取出来
        results = response.json()['resultList'] # 至此我们已经取到了数据
        # print(results) # 是个列表,列表中的每个元素都是字典
    
        for item in results:
            pprint.pprint(item)
            # 构造详情页
            detail_page = f'https://www.jfh.com/jfportal/orders/jf{item["orderNo"]}'
    
            # 由于可能有些信息是没有截止日期的,所以运行的时候可能会报错,用判定
            # if item['bidValidtime']: # 有数据才进行下一步操作
            # 这里我用try
            try:
                dataNeed = {
                    '标题':item['orderName'],
                    '编号':item['orderNo'],
                    '类型':item['techDirection'],
                    '投标人数':item['bookCount'],
                    '发布日期':item['formatOrderTime'],
                    '截止日期':item['bidValidtime'],
                    '状态':item['bidValidTimeOut'],
                    '价格':item['planPrice'],
                    '详情页':detail_page,
                }
                # 写入到csv文档里
                csvWriter.writerow(dataNeed)
                print(dataNeed)
            except:
                pass # 错误就直接跳过
            print(str(keyword) + '爬取完毕!')

    保存后的数据如下:

    可视化可以拿价格可视化一下,提高一下自己学习的欲望。

  • 相关阅读:
    DNNClassifier 深度神经网络 分类器
    浏览器对MP4视频 帧宽度 高度的兼容性
    UnicodeEncodeError:'latin-1' codec can't encode character
    文件夹下 文件计数
    the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.
    the “identity” of an object
    广告特征 用户特征
    如果一个维度全覆盖,则有效维度应该对该维度全覆盖
    a high-level neural networks AP
    使用 LDA 挖掘的用户喜好主题
  • 原文地址:https://www.cnblogs.com/mafu/p/15501066.html
Copyright © 2011-2022 走看看