您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 克拉玛依分类信息网,免费分类信息发布

Python入门:利用Python快速收集金融数据

2024/1/28 6:16:05发布20次查看
python 作为一种开源语言提供了丰富的 api 和工具,具有较高的灵活性,同时相关的第三方库(requests+beautiful soup+re)也较为成熟,可以很容易的开发出数据爬取爬虫等程序,对于非专业程序员却又有编程需求的业务人员非常合适。本次我们将以采集金融数据为例讲述利用python采集金融数据的过程。
beautifulsoup库是解析、遍历、维护 “标签树” 的功能库,需要安装。
re库是正则表达式库,python自带。
在使用 python 进行数据采集时,如果是小规模数据采集,可以使用 requests+beautiful soup+re 的架构来完成,使用 requests库可以自动提交网络请求和自动爬取 html 页面,使用 beautiful soup 库和 re 正则表达式可解析 html页面和提取页面关键信息。
在开始采集之前,我们需要对目标网站进行充分的分析。特别是url结构和页面的html结构,确定好需要采集的数据和数据所在的页面。根据对目标网站(
某金融信息网站
)的分析,我这次采集的目标锁定在
某类交易商品销售情况上,将要采集
交易名称、价格、成交量、换手率、交易者、交易者地址等。此外我们还要查看网站的robots.txt 文件,以便确定爬取策略。
(一)确定数据爬取策略。
我们需要由某一页面的url地址开始,形成目标页面的url队列,从观察网站页面的url变化得知,目标网站产品分类页的url有以下规律(http://s.####/search?q=”类别”&s=页码 )url地址的尾部由类别和页码组成,由此我们就可以制定好页面爬取url队列的规则,只需使用python脚本
遍历得到页面信息。每次遍历实现对单个 html 页面信息的获取、解析和存储。页面信息的获取调用了自定义方法gethtml (),页面信息的解析调用了自定义方法parsehtml()。
for i in range(页面数量):
time.sleep(2)
try:
url=start_url+str(每页商品数量 *i)
html=gethtml(url)
parsehtml(html,goodslist)
savegoodslist(goodslist,file_path)
except:
continue
(二)获取 html 页面信息。python可以通过
调用 requests 库的 get(url)方法获取 html 页面的源代码。
url 作为 get(url)方法参数指明了要获取的资源路径,返回的页面信息被存储为 response 对象中。response 对象的text 即为 html 的页面内容。requests 还包括 post()、head()等方法。使用 requests.get(url).text 可以获得url 地址所对应的 html 文档内容;使用 f.write(re-quests.get(url).content)可以将 url 所指向资源以二进制的形式获得并保存至本地硬盘。 gethtml()方法代码如下:
r=requests.get(url,header,timeout=30)
return r.text
(三)解析 html 文档,提取关键信息。获取页面信息后,就要对 html 页面内容进行分析以提取关键信息。整个解析过程中要对 http 协议及 html 文档结构有足够的认识。当前要获取的是交易名称、价格、成交量、换手率、交易者、交易者地址等信息,分析 html 页面源代码发现其结构如下:
title:comex白银
price:15.89
sales:成交量
user:交易者
item:广东 广州
根据页面规律这些信息可以使用正则表达式直接提取,正则表达式是一个特殊的字符序列,它能方便地检查一个字符串是否与某种模式匹配。re 库是 python 的标准库,主要用于字符串匹配。re 的 findall()可以实现在文本中检索全部能匹配的字符子串,并将检索结果以列表类型返回。re 还包括 search()、match()、split()等方法。当然如果正则表达式无法提取信息也可以使用beautiful soup库等对页面内容进行解析。
(四)采集结果分析。当数据采集完毕,我们即可使用python强大的数据分析库对数据进行分析。
如:numpy、matplotlib等。
numpy
numpy 是 python 科学计算的基础包,它提供:
快速高效的多维数组对象 ndarray;
直接对数组执行数学运算及对数组执行元素级计算的函数;
线性代数运算、随机数生成;
将 c、c++、fortran 代码集成到 python 的工具等。
它专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:lawrence livermore,nasa 用其处理一些本来使用 c++,fortran 或matlab 等所做的任务。
克拉玛依分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录