7*24小时全球实时财经新闻直播摘要python抓取

本文介绍了一个Python程序,用于7*24小时实时抓取新浪财经新闻摘要,采用json格式存储数据,支持开机启动和定时更新。通过遍历页面获取历史数据,解析函数处理每页新闻,讨论了代码改进方向,包括多进程下载和二分查找优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

因要研究一下经济和舆情,所以需要原始的数据,通常来说,信息的摘要已经足够,而且信息格式规整不需要进行复杂的清洗。
本程序采用json格式来保存数据因此该程序可以便捷地进行更改,只保存自己需要的部分,或者设为开机启动和定时启动,来更新自动的数据库。

一、思路

数据来源

原网站网址:http://finance.sina.com.cn/7x24/
网站的数据来源:Request URL: http://zhibo.sina.com.cn/api/zhibo/feed?callback=jQuery111209642919567773593_1582017910555&page=1&page_size=20&zhibo_id=152&tag_id=0&dire=f&dpc=1&pagesize=20&id=1622305&type=1&_=1582017910576/
简化后:http://zhibo.sina.com.cn/api/zhibo/feed?&page=%1&page_size=100&zhibo_id=152/
新浪提供了2014年3月5日至今的数据,可以根据自己的需要进行下载相关的数据。

分析:

每一篇文章都有一个唯一的id。
每一page最多可以返回最近的100条新闻。
可以通过控制page可以获取历史的新闻。
相同的page返回的不一定是相同的内容。

因此只要遍历page就可以找到自己需要下载那一日下page_code然后下载解析即可。

二、下载

1.解析函数

通过page_code返回news_list,news_list是100条新闻,每一条新闻是json格式,失败重试(可能进入死循环,或达到最大迭代次数(我没有发生过))。

def get_news_list(code):
    try:
		headers = {
   
		"User-Agent": "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)",
		}
        url='http://zhibo.sina.com.cn/api/zhibo/feed?&page=%s&page_size=100&zhibo_id=152'%code
        news_list=requests.get(url,headers = headers).text
        news_list=json.loads(news_list)['result']['data']['feed']['list']#可以在这里选择自己需要保存的信息
        if 'None'in str(type(news_list)):
            news_list=get_news_list(code)
        return news_list
    except:
        return get_news_list(code)

2.总下载+保存

def update_news_list(code,end_code=0):
    news_list=get_news_list(code)
    date = news_list[99]['create_time'][:10]
    index=""
    last_date=""
    OK=False
    #找到code页最后一条信息那一天最早的一篇新闻的code和index
    while(not OK):
        for i in range(len(news_list)-1,-1,-1):
            if news_list[i]['create_time'][:10] !=date:
                date=news_list[i]['create_time'][:10]
                index=i
                OK=True
                break
        if not OK:
            code-=1
            news_list=get_news_list(code)
    #没有下载完
    while(code>end_code):
        news_list_all=[]
        #先把最早的那一页属于date那一天储存下来
        for i in range(index,-1,-1):
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值