使用python实现抓取中国银行外汇牌价首页数据实现

 更新时间:2021年10月28日 14:25:12   作者:BoBo啵啵  
这篇文章主要为大家介绍了如何使用python实现抓取中国银行外汇牌价首页数据的实现示例,有需要的同学可以借鉴参考下,希望能够有所帮助,祝大家多多进步

利用requests、BeautifulSoup、xlwings库抓取中国银行外汇牌价首页数据

1. 利用requests、BeautifulSoup、xlwings库抓取中国银行外汇牌价首页数据。

(1)中国银行外汇牌价网址如下。

https://www.bankofchina.com/sourcedb/whpj/

在这里插入图片描述

(2)调用requests模块中get方法访问上述网址,获取Response 对象。

url = "https://www.bankofchina.com/sourcedb/whpj/"
web=re.get(url)

(3)利用BeautifulSoup类解析。

#BeautifulSoup将字节流转换为utf-8编码
bs_obj=BeautifulSoup(web.text,'lxml')

(4)利用find_all方法查找table、tr、td等标签对象。

#查找数据所在表格

table=bs_obj.find_all('table')[1]
all_th=all_tr.find_all('th')
#print(all_th)
all_td=all_tr.find_all('td')
#print(all_td)

(5)将找到的相应标签内容依次添加到列表中。

if len(all_th)>0:
        dataRow=[]
        for item in all_th:
            dataRow.append(item.text)
        dataAll.extend([dataRow])
    if len(all_td)>0:
        dataRow=[]
        for item in all_td:
            dataRow.append(item.text)
        dataAll.extend([dataRow])

(6)利用xlwings库,将列表内容写入Excel文件。

wb=xw.Book()
sht=wb.sheets('Sheet1')
sht.range('a1').value=dataAll#将数据添加到表格中

(7)利用这部分数据建立折线图。

chart=sht.charts.add(500,50,700,400)
chart.set_source_data(sht.range('A1:A28,C1:C28,E1:E28'))#设置数据画图
chart.chart_type='line_markers'

chart.name='line_markersd'
#chart.api[1].ChartTitle.Text='中国银行外汇牌价'

Code:

import requests as re
from bs4 import BeautifulSoup
import xlwings as xw
url = "https://www.bankofchina.com/sourcedb/whpj/"
web=re.get(url)
web.encoding=web.apparent_encoding
#BeautifulSoup将字节流转换为utf-8编码
bs_obj=BeautifulSoup(web.text,'lxml')
#查找数据所在表格
table=bs_obj.find_all('table')[1]
#print(table)
dataAll=[]
for all_tr in table.find_all('tr'):#找到所有tr,返回一个列表
    all_th=all_tr.find_all('th')
    #print(all_th)
    all_td=all_tr.find_all('td')
    #print(all_td)
    if len(all_th)>0:
        dataRow=[]
        for item in all_th:
            dataRow.append(item.text)
        dataAll.extend([dataRow])
    if len(all_td)>0:
        dataRow=[]
        for item in all_td:
            dataRow.append(item.text)
        dataAll.extend([dataRow])
wb=xw.Book()
sht=wb.sheets('Sheet1')
sht.range('a1').value=dataAll#将数据添加到表格中
chart=sht.charts.add(500,50,700,400)
chart.set_source_data(sht.range('A1:A28,C1:C28,E1:E28'))#设置数据画图
chart.chart_type='line_markers'
chart.name='line_markersd'
#chart.api[1].ChartTitle.Text='中国银行外汇牌价'

在这里插入图片描述

以上就是使用python实现抓取中国银行外汇牌价首页数据实现的详细内容,更多关于Python抓取中国银行外汇牌价的资料请关注脚本之家其它相关文章!

相关文章

  • Python的lambda匿名函数的简单介绍

    Python的lambda匿名函数的简单介绍

    Python的lambda匿名函数的简单介绍,需要的朋友可以参考一下
    2013-04-04
  • Django如何批量创建Model

    Django如何批量创建Model

    将测试数据全部敲入数据库非常繁琐,这篇文章主要介绍了Django如何批量创建Model,帮助大家快速录入数据,感兴趣的朋友可以了解下
    2020-09-09
  • 基于OpenCV目标跟踪实现人员计数器

    基于OpenCV目标跟踪实现人员计数器

    这篇文章主要介绍了如何利用Python OpenCV这两者来创建更准确的人员计数器,文中的示例代码讲解详细,感兴趣的小伙伴快来跟随小编学习一下吧
    2022-03-03
  • opencv-python+yolov3实现目标检测

    opencv-python+yolov3实现目标检测

    因为最近的任务有用到目标检测,快速地了解了目标检测这一任务,并且实现了使用opencv进行目标检测。感兴趣的可以了解一下
    2021-06-06
  • Pycharm配置远程调试的方法步骤

    Pycharm配置远程调试的方法步骤

    这篇文章主要介绍了Pycharm配置远程调试的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python入门教程(十一)Python中的运算符

    Python入门教程(十一)Python中的运算符

    这篇文章主要介绍了Python入门教程(十一)Python中的运算符,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • Python常用标准库之os模块功能

    Python常用标准库之os模块功能

    这篇文章主要介绍了Python常用标准库之os模块功能,os模块的主要功能有系统相关、目录及文件操作、执行命令和管理进程,其中的进程管理功能主要是Linux相关的,此处不做讨论,对Python标准库os相关知识感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 详解Python如何检查一个数字是否为科技数

    详解Python如何检查一个数字是否为科技数

    科技数(Tech Number)是一种在数学上具有一定特殊性质的数字,这篇文章主要为大家详细介绍了如何使用Python检查一个数字是否为科技数,感兴趣的可以了解下
    2024-03-03
  • 使用Python实现生命之轮Wheel of life效果

    使用Python实现生命之轮Wheel of life效果

    生命之轮Wheel of life这一概念最初由 Success Motivation® Institute, Inc. 的创始人 Paul J. Meyer 提出,生命之轮使人能够根据此刻的价值观、愿景和优先事项,本文将使用Python实现生命倒计时图表,感兴趣的可以了解下
    2024-12-12
  • 快速解决安装python没有scripts文件夹的问题

    快速解决安装python没有scripts文件夹的问题

    下面小编就为大家分享一篇快速解决安装python没有scripts文件夹的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04

最新评论