首页 > 编程语言 >python 抓取优财网Libor利率数据,并使用BeautifulSoup解析

python 抓取优财网Libor利率数据,并使用BeautifulSoup解析

时间:2023-10-25 16:22:42浏览次数:42  
标签:string python 优财网 BeautifulSoup soup select datas2

需求背景:需求是用程序抓取优财网Libor 查询 伦敦银行同业拆借利率-数据中心-优财网-优财金融数据金融资讯门户官方网站-UCAI123.COM Libor数据,USD的

实现思路:没找到优财网的开放API,只能通过读取网页数据,用BeautifulSoup来解析数据,至于为啥不用pandas来解析,是因为pandas适合解析有table标签的网页,而这次抓取到的网页没用到table标签,咱们要的数据都在div标签里面,所以只能用BeautifulSoup,BeautifulSoup的安装过程就不介绍了。优财网对网站做了反爬虫处理,常规的requests.get得不到我需要的网页数据,所以需要给headers加一些参数,伪装成电脑浏览器去抓数据,具体参数设置看以下代码,其中cokkie必不可少,但cookie参数的有效期还不得而知,有可能你看到这篇文章时,cookie已经失效了,时间有限,也没去研究在程序里刷新cookie的方法。

另:由于这次抓取数据用了些伪装技巧,这篇文章发布后,优财网可能会针对这类伪装再做一些防范,到时候这种方法就失效了。

import requests
from bs4 import BeautifulSoup

url = "http://www.ucai123.com/datas-libor"
headers1 = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ga;q=0.5',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Cookie': 'Hm_lvt_328b28d304b056f7ecfb26c54a32d979=1676562778; t=025ac93247f76e98fe2ca476a45b6572; r=7681; JSESSIONID=86D37BB6296478E089267F3208B9F263; Hm_lvt_3fce8580f2e4a5e9b06a9fd55e6a8a67=1698218384; __utma=19472828.1133157907.1698218384.1698218384.1698218384.1; __utmc=19472828; __utmz=19472828.1698218384.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; Hm_lpvt_3fce8580f2e4a5e9b06a9fd55e6a8a67=1698218721; __utmb=19472828.4.10.1698218384',
    'Host': 'www.ucai123.com',
    'Referer': 'http://www.ucai123.com/datas-libor',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46'
}
r = requests.get(url, headers=headers1)

soup = BeautifulSoup(r.text, "lxml")
data_content = "每日Libor播报\n" + "货币:USD " + "\n" \
               "日期:" + soup.select("#times")[0].string + "\n" \
                + "隔夜期:" + soup.select("#datas2")[0].string + "\n" \
                + "1周期:" + soup.select("#datas2")[1].string + "\n" \
                + "2周期:" + soup.select("#datas2")[2].string + "\n" \
                + "1个月:" + soup.select("#datas2")[3].string + "\n" \
                + "2个月:" + soup.select("#datas2")[4].string + "\n" \
                + "3个月:" + soup.select("#datas2")[5].string + "\n" \
                + "4个月:" + soup.select("#datas2")[6].string + "\n" \
                + "5个月:" + soup.select("#datas2")[7].string + "\n" \
                + "6个月:" + soup.select("#datas2")[8].string + "\n" \
                + "7个月:" + soup.select("#datas2")[9].string + "\n" \
                + "8个月:" + soup.select("#datas2")[10].string + "\n" \
                + "9个月:" + soup.select("#datas2")[11].string + "\n" \
                + "10个月:" + soup.select("#datas2")[12].string + "\n" \
                + "11个月:" + soup.select("#datas2")[13].string + "\n" \
                + "12个月:" + soup.select("#datas2")[14].string

print(data_content)

运行效果:

 这个与网站上显示的数据是一致的:

 补充说一下怎么得到模仿浏览器访问的这些Headers参数,以Edge浏览器为例,先在浏览器中打开上面的网页,按F12打开开发人员工具栏,在网络标签下,刷新下页面,选择左侧的页面链接,右边就会显示请求标头,这个标头就是Headers参数。

 

标签:string,python,优财网,BeautifulSoup,soup,select,datas2
From: https://www.cnblogs.com/dige1993/p/17787488.html

相关文章

  • 《流畅的Python》 读书笔记 第5章 一等函数 20231025
    第5章一等函数第四章相对偏僻,但时间上一样要花我很久,就先跳过了,回头再补。而这个第5章节是非常重要的。只是最近工作有点忙,我读的越来越慢了~继续坚持吧。在Python中,所有函数都是一等对象,整数、字符串和字典都是一等对象(注:first-classobject)要成为一等对象,需要满足......
  • python练习.10
    问:计算1**1+2**2+3**3+...+n**n#方法一su=0x=int(input("请输入你想输入的值:"))foriinrange(1,x+1):su+=i**iprint(f"最后的值为:{su}")#方法二defAyue(n):returnn**nm=int(input("请输入你想要计算的值:"))x=0i=1while(i<=m):......
  • python练习.11
    问:让用户输入值,值中的a用*代替x=str(input("请输入你的值:"))if"a"notinx:print(x)else:print(x.replace('a','*')) ......
  • python练习.9
    问:计算100以内自然数中偶数的和#方法一s=0foriinrange(101):ifi%2==0:s=s+iprint(s)#方法二a=[]foriinrange(101):ifi%2==0:a.append(i)print(sum(a)) ......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-22-处理select下拉框-上篇
    1.简介在实际自动化测试过程中,我们也避免不了会遇到下拉框选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。今天,我们讲下playwright的下拉框怎么处理,在使用selenium定位的过程中,我们可以选择使用selenium的Select类定位操作选择框......
  • Python概述
    1.1Python简介Python的英文原意为“蟒蛇”,它的诞生是极具戏剧性的。据荷兰人GuidovanRossum(简称Guido)的白述记栽,Python语言是他在圣诞节期间为了打发时间开发出来的。之所以选择Python作为该编程语言的名字,是因为他是一个名为MontyPython的戏剧团体的忠实粉丝。从整体上看,P......
  • 解决pycharm中Python console显示中文乱码
    找了很多方法,以下方法解决了问题:第一步:file—settings,在搜索框搜索console,找到Pythonconsole第二步:在右侧Environmentvariables一栏输入PYTHONIOENCODING=UTF-8第三步:在最下面的Startingscript里,最后添加一行代码:importos;os.system('chcp65001')第四部:重启pythonco......
  • 【Python】基于非侵入式负荷检测与分解的电力数据挖掘
    前言本案例将根据已收集到的电力数据,深度挖掘各电力设备的电流、电压和功率等情况,分析各电力设备的实际用电量,进而为电力公司制定电能能源策略提供一定的参考依据。更多详细内容请参考《Python数据挖掘:入门进阶与实用案例分析》一书。一、案例背景为了更好地监测用电设备的能耗......
  • 华为云耀云服务器L实例:初级篇-conda与python环境配置
     华为云耀云服务器L实例是一款可快速部署且易于运维的轻量级云服务器,专为中小企业和入门级开发者打造。它不仅拥有华为云擎天架构的强大性能,还具有多项用户体验优化方案,让用户轻松上手,享受简单上云的乐趣。本产品网址为:https://www.huaweicloud.com/product/hecs-light.html......
  • python win32com加密表格文件;加密目录下的所有表格文件
    需求背景:写一个工具,对指定路径下的所有Excel文件进行加密,设置打开密码和编辑密码实现思路:需要用python遍历指定目录下的所有文件,判断是否是EXCEl文件,还要判断文件是否原本就有密码,加密完成后将结果写入到文本文件代码:importosimporttkinterimporttkinter.filedialogfrom......