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

作者:BoBo啵啵 时间:2021-11-28 02:05:49 

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

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

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

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

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

(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实现抓取中国银行外汇牌价首页数据实现

来源: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

标签:Python,外汇牌价,数据抓取
0
投稿

猜你喜欢

  • Python UI自动化测试Web frame及多窗口切换

    2023-05-29 01:18:55
  • pytorch显存一直变大的解决方案

    2021-03-03 00:03:09
  • Python用 matplotlib 绘制柱状图

    2023-01-22 01:20:50
  • java数据库操作类演示实例分享(java连接数据库)

    2024-01-28 03:30:20
  • gulp-htmlmin压缩html的gulp插件实例代码

    2023-08-06 01:20:18
  • 如何高效地访问记录集?

    2009-11-22 19:25:00
  • 手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年

    2021-06-16 19:53:55
  • 分享一下SQL Server执行动态SQL的正确方式

    2024-01-14 00:17:56
  • Python换行与不换行的输出实例

    2022-01-15 13:10:10
  • Dreamweaver小技巧:超高速下载图像

    2009-07-14 21:59:00
  • Mysql获取当前日期的前几天日期的方法

    2024-01-16 01:22:31
  • Python3中FuzzyWuzzy库实例用法

    2022-01-30 18:49:49
  • 简单了解Go语言中函数作为值以及函数闭包的使用

    2024-04-29 13:05:50
  • 解决Python3中的中文字符编码的问题

    2022-05-04 04:22:09
  • vue的hash值原理也是table切换实例代码

    2023-07-02 16:54:52
  • WAP页面设计与实现小贴士

    2011-01-10 20:38:00
  • 如何恢复MYSQL的ROOT口令

    2008-06-02 13:59:00
  • Python获取当前脚本文件夹(Script)的绝对路径方法代码

    2021-05-27 09:57:52
  • Python安装xarray库读取.nc文件的详细步骤

    2023-10-15 11:59:37
  • Python随手笔记之标准类型内建函数

    2022-10-23 11:00:45
  • asp之家 网络编程 m.aspxhome.com