使用python实现抓取中国银行外汇牌价首页数据实现
作者:BoBo啵啵 发布时间:2021-11-28 02:05:49
标签: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='中国银行外汇牌价'
来源:https://blog.csdn.net/gezongbo/article/details/120986228?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-7.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-7.nonecase
0
投稿
猜你喜欢
- 转:coolcode.cn通常情况下,我们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 
- Python 通过pywin32模块调用WindowsAPI接口,实现对特定进程加载模块的枚举输出并检测该PE程序模块所启用的保护方式,此处
- 学习Python的过程中,我们会遇到Excel的读写问题。这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Exc
- Python是一个非常实用、流行的解释型编程语言,其优势之一就是可以借助其交互的shell进行探索式地编程。你可以试着输入一些代码,然后马上
- 前言数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图、柱状图、线图等图表制作是一个数据分析师必备的技能。Pyt
- 简介memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。它是一个纯python模块,依
- (1)安装Jpype 用Python调用jar包需要安装jpype扩展,在Ubuntu上可以直接使用apt-get安装jpype扩展$ su
- 在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select
- 前言对自己写的冗长代码,想重构但又无思路?小编整理了介绍python代码重构优化的一些方法,助你一臂之力。编写干净的 Pythonic 代码
- 使用windows API使用PIL中的ImageGrab模块下面对两者的特点和用法进行详细解释。一、Python调用windows API
- typing为Python的一个标注库,此默认支持PEP 484和PEP 526指定的类型提示。最基本的支持由Any、Union、Tuple
- 一. 数据的格式首先我们需要x,y,z三个数据进行画图。从本实验用到的数据集KITTI 00.txt中举例:1.000000e+00 9.0
- 应用背景背景:“由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻
- 利用Python生成PDF文件时,对比了fpdf和reportlab两个库。fpdf最新更新还是2015年,另外reportlab的资料网上
- 背景在爬取网站数据时,我们通常会遇到一些动态渲染页面的网站。传统的静态网站我们可以直接通过 requests.get() 函数获取页面源代码
- gchart:基于google图表API的jquery组件全攻略——入门gchart是基于google图表API的jquery组件。使用gc
- 是不是有这么一个场景,对外提供一堆数据或者是要返回给用户一个结果。但是不想把内部的一些数据和逻辑暴露给对方。。。简单点来说,就是想以服务的方
- 从BbsXp提出来的生肖函数Zodiac(birthday)。使用方法:birthday为把要判断的出生时间,如2008-3-24 20:0
- 首先来看看这个php字符串替换函数 strtr()的两种用法:strtr(string,from,to) 或者strtr(string,ar
- 这篇博客将介绍如何使用OpenCV和深度学习应用全面嵌套的边缘检测。并将对图像和视频流应用全面嵌套边缘检测,然后将结果与OpenCV的标准C