资源简介

新浪财经24小时python爬虫程序,内置自动推送到企业微信的群机械人的功能。适合微信企业群使用。爬虫仅供个人学习研究python使用,请勿使用于商业或非法用途。

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-

‘‘‘
version:2.0
代码重新架构,把脚本封装为函数以方便处理数据
增加了测试模块,以防止网络波动导致的代码运行中断
‘‘‘
lastdateid = ‘0‘

import requests
import json
import time
import sys

# 获取最新消息的地址
base_url_new = ‘http://zhibo.sina.com.cn/api/zhibo/feed?\
            callback=jQuery0&page=1&page_size=1&zhibo_id=152\
            &tag_id=0&dire=f&dpc=1&pagesize=1&_=0%20Request%20Method:GET‘

# 自定义js提取页
‘‘‘
输入请用str格式
oldnum_str:此数字或者是以现在为计时之前的页数
thispagesize:此次取的js数据页的数据数
oldpagesize:原来的js数据页的数据数目
‘‘‘
‘‘‘
#此url的数据中会存在thispagesize_str条信息,比最新信息早  oldnum_str* oldpagesize_str条
#oldnum_str max 527999 
‘‘‘


def myurl(oldnum_str thispagesize_str oldpagesize_str):
    my_url_a = r‘http://zhibo.sina.com.cn/api/zhibo/feed?\
                    callback=jQuery0&page=‘
    my_url_b = r‘&page_size=‘
    my_url_c = r‘&zhibo_id=152&tag_id=0&dire=f&dpc=1&pagesize=‘
    my_url_d = r‘&_=0%20Request%20Method:GET‘
    my_url = my_url_a + oldnum_str + my_url_b + thispagesize_str + my_url_c + oldpagesize_str + my_url_d  # 获取往前的第n条消息
    return my_url


i = 1  # 本代码运行后得到的数据量标号
n = 1  # 等待时间标号一个为5s


# 从js数据包中获得json数据
def get_json_str(base_url):
    json_str = ‘‘
    try:
        response = requests.get(base_url timeout=5)
        html = response.text
        html_cl = html[12:-14]
        html_json = eval(html_cl)
        json_str = json.dumps(html_json)
    except Connectionerror:
        print(‘get_json_str得到数据时网络连接有问题,未得到json数据‘)  # 此处数据穿送出去为了后期处理
    except UnboundLocalError:
        print(‘get_json_str您的电脑休眠导致连接中断‘)  # 此处数据穿送出去为了后期处理
    except Exception as errorname1:
        print(‘get_json_str未收录错误类型,请检查网络通断错误位置:‘ errorname1)
        # print(errorname1)# 此处数据穿送出去为了后期处理‘‘‘
    finally:
        return json_str


‘‘‘
json 数据解析函数 
输入:json类型的str数据
数出:以数据id作为key的字典
‘‘‘


def json_str_analysis(json_date):
    date_dic = {}
    try:
        python_dic = json.loads(json_date)  # 先拆分为主字典

        list_str = python_dic[“result“][‘data‘][‘feed‘][‘list‘]  # 取数据列表
        ‘‘‘
        重新整定字典
        date_dic=
            {数据在新浪数据库的id:{‘id‘:         
                                 ‘rich_text‘:    
                                 ‘create_time‘:    
                                 ‘tag‘:{}            
                                 }}
        ‘‘‘

        for list_dic in list_str:  # 对list的多组数据解析
            need_option = [‘id‘ ‘rich_text‘ ‘create_time‘ ‘tag‘]  # 定义需求关键词
            for listkey in list(list_dic.keys()):  # 字典在遍历的时候不能修改元素,此处先编程列表在变回字典
                if listkey not in need_option:
                    list_dic.pop(listkey)
            date_dic[list_dic[‘id‘]] = list_dic
    except ValueError:
        print(‘json_str_analysis  json数据格式不对无法解析‘)
    except Exception as errorname2:  # 将报错存储在errorname2中
    

评论

共有 条评论