【建议收藏】货币交易信息爬取+筛选(Python附源码)

Python获取虚拟货币交易信息+筛选

爬取的货币信息来源于非小号网站

一、检查网络源码

我们可以发现一页内容就有100种货币的信息,我们检查网络源码看看能不能找到货币信息

二、打开开发者工具

下滑条到底都没能找到货币信息,这就说明货币信息是动态加载出来的,我们打开开发者工具选中Network重新加载下网页对信息进行抓取,通过搜索来查找货币信息

三、分析URL

找到了我们想要的信息,我们检查下请求地址

通过请求地址发现url中有一个page的参数,那我们将1改为2会不会是第二页货币信息呢?我们可以试一下


果然和我们想的一样,通过这种方法来获取货币信息有一个弊端那就是请求次数太频繁了网站很容易检测到我们是爬虫,接下来我们换一种更快更简洁的方法来获取货币信息

通过api获取货币信息

一、查看官方手册

文档需要翻墙查看


其中各字段的说明如下:
“id”: “币种代码(唯一主键)”,
“name”: “币种英文名称”,
“symbol”: “币种的简称”,
“rank”: 币种的排名,
“logo”: “币种的logo(webp格式)”,
“logo_png”: “币种的logo(非webp格式)”,
“price_usd”: 最新价格(单位:美元),
“price_btc”: 最新价格(单位:BTC),
“volume_24h_usd”: 24h的成交额(单位:美元),
“market_cap_usd”: 流通市值(单位:美元),
“available_supply”: 流通数量,
“total_supply”: 总发行量,
“max_supply”: 最大发行量(最大发行量可能>总发行量,譬如有些币种会主动销毁一部分数量),
“percent_change_1h”: 1小时涨跌幅,
“percent_change_24h”:24小时涨跌幅,
“percent_change_7d”:7天涨跌幅,
“last_updated”: 行情更新时间(10位unix时间戳)

公式

换手率=(24h的成交额/流通市值)x100
流通率=(流通数量/最大发行量)x100

二、编写程序

代码:

import requests
import json
from  fake_useragent import UserAgent
import pandas as pd
data=list()
clean=list()
P=100000000


#获取货币信息函数
def url_parsr():
    #货币api接口
    url ='https://fxhapi.feixiaohao.com/public/v1/ticker'
    params={
            "start":"0",
            'limit':'15000',
            'convert':'CNY'
    }
    headers={"User-Agent":UserAgent().random}
    #中文货币信息列表
    label=["币种代码","币种英文名称","币种的简称",'币种的排名','币种的logo(webp格式)','币种的logo(非webp格式)',"最新价格(美元)","最新价格(BTC)","24h的成交额","流通市值",'流通数量','总发行量','最大发行量',"1小时涨跌幅",'24小时涨跌幅','7天涨跌幅','行情更新时间',"24H额(¥)",'流通市值(¥)','当前价格(¥)']
    try:
        response=requests.get(url=url,headers=headers,params=params).text
        response=json.loads(response)
        for i in response:
            dic = {}
            for key, value in zip(label, i.values()):
                #将英文货币信息转为中文
                dic[key] = value
            data.append(dic)
    except:
        print("网络请求失败请重新运行")

#处理货币信息函数
def data_parse():
    for i in data:
        #有的货币流通市值为0运行会报错
        try:
            i['换手率']=round((i["24h的成交额"]/i['流通市值']*100),2)
        except:
            i['换手率']=0
        try:
            l=(i['流通数量'] / i['最大发行量']) * 100
            i['流通率']= round(l,2)
        except:
            i['流通率'] = 0
        if i['换手率']>=0 :
            clean.append(i)

#生成Excel函数
def toexcel():
    try:
        x=pd.DataFrame(clean)
        x.drop(columns=['行情更新时间',"最新价格(美元)","币种英文名称",'币种的logo(webp格式)','币种的logo(非webp格式)',"最新价格(BTC)","24h的成交额","流通市值",'流通数量'],axis=1,inplace=True)
        x.set_index("币种代码",drop=True, inplace=True)
        x.to_excel("./货币.xlsx")
        print("货币.xlsx生成成功")
    except:
        print("数据异常")
def main():
    url_parsr()
    data_parse()
    toexcel()

if __name__ == '__main__':
    main()

运行结果

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Python爬虫是一种通过编写Python程序来自动化获取互联网上的数据的技术。爬虫可以用于从网上抓取各种数据,包括文字、图片、视频等。而网课数据爬取是指使用爬虫技术从网上抓取各种网课相关的数据,比如课程名称、课程价格、课程评分等。 爬取网课数据的过程通常分为以下几个步骤: 1. 确定要爬取的目标网站和数据,比如某个网上教育平台的课程页面。 2. 使用Python的爬虫库,比如Requests库或Scrapy框架,发送HTTP请求获取网页内容。 3. 使用解析库,比如BeautifulSoup库或XPath,解析网页内容,提取所需的数据。 4. 对数据进行清洗和处理,比如去除HTML标签、缺失值处理等。 5. 将清洗过的数据保存到本地文件或数据库中,以备后续分析和可视化使用。 在获取到网课数据后,可以使用可视化工具,比如Matplotlib库或Plotly库,来进行数据的可视化展示。通过可视化,可以更直观地理解和分析数据,并将数据以图表的形式展示出来,比如柱状图、折线图、饼图等。这些图表可以帮助人们更好地理解网课的分布、趋势和关联性,为决策提供参考。 总而言之,Python爬虫技术可以用于网课数据的爬取,而数据的可视化则可以通过使用Python的可视化库来实现。这种方式可以帮助我们更好地利用网上的网课资源,并通过数据分析和可视化来获得更多的洞见和价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值