Python金融应用之利用Plotnine作图(一)——简单柱状图

//

- 前言 -

◆ ◆ ◆ ◆

由于爬虫涉及较多网络专用术语,而小咖也仅是单纯一金融民工,因此这里就直接将网络上对于这些关键术语的定义展示给大家,如果感兴趣大家可以自行深度学习,而小咖的Python系列将主要专注于各类python工具的金融应用。

1、爬虫:是一个可以自动化抓取网页、app内容的工具。其中,我们将讲到的是目前应用最广泛的搜索引擎网络蜘蛛,在python中录入网址既可以获取网页数据。

2、URL:是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。URL的格式由三部分组成:

(1)第一部分是协议:http/https/ftp/ws等等。

(2)第二部分是存有该资源的主机IP地址(有时也包括端口号),简单说就是网站的域名。

(3)第三部分是主机资源的具体地址,如目录和文件名:即网站的二级目录和信息列表页、资源页等等。

3、F12:在网页界面点击F12后会出现开发者工具,我们可以通过F12找到所需数据及其节点。主要模块为:

Elements:可以查看当前文档的DOM信息

Console:查看调试,也可直接写JS代码

Source:查看当前资源文件的(CSS,JS,IMAGE)

Network:查看网络请求

4、User Agent:User Agent的中文名为用户代理,简称UA,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好等。有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果发现是爬虫程序便会拒绝访问。因此,我们可以通过设置User Agent的来隐藏身份继而使得程序正常运行。

User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。

5、爬虫相关库:

在Python3中,可以使用urllib.request和requests进行网页爬取。urllib库是python内置的,无需额外安装。而requests库是第三方库,需要自己安装。

**Requests库:**requests实现了HTTP协议中绝大部分功能,它提供的功能包括Keep-Alive、连接池、Cookie持久化、内容自动解压、HTTP代理、SSL认证、连接超时、Session等很多特性,最重要的是它同时兼容python2和python3。安装方法:

pip install requests

**urllib库:**同样可以用来处理http请求,但是相较而言requests库更加简洁且容易理解,因此这里暂不讨论此库。

**Beautiful Soup库:**解析获取的HTML信息。安装方法:

pip install beautifulsoup4

- Python爬虫实例 -

◆ ◆ ◆ ◆

第一步:安装各种包

资料来源:西瓜财经资讯

第二步:根据URL,获取网页的HTML信息

资料来源:西瓜财经资讯

(1)安装并导入requests包

pip install requests

import requests

(2)输入目标网页。

资料来源:网络(网易财经)

(3)设置User Agent。

headers={‘User-Agent’:‘Mozilla/5.0(WindowsNT 6.2;WOW64;rv:21.0)Gecko/20100101Firefox/21.0’}

(4)获取网页的HTML信息

res=requests.get(url=target,headers=headers)

(5)为了防止乱码将unicode编码的字符串转换成utf-8编码。网页的编码,可以在网页上点击右键“编码”查看。

res.encoding = ‘utf-8’

资料来源:网页

(6)创建一个Beautiful Soup对象。首先用from bs4 import BeautifulSoup as bs导入库,再利用BeautifulSoup对得到的html代码进行解析。下式第一个参数为需要提取数据的html,第二个参数是指定解析器。

soup = bs(res.text, ‘html.parser’)

(7)在网页上点击右键——“查看源代码”,即可以得到我们如下网页信息:

资料来源:网页

(8)根据数据特点,使用find_all方法,找到所有标签为div且class为inner_box的情况。

注:HTML标签是HTML语言最重要的组成部分,也是最基本的单位。如上图的div便是HTML标签,而id和class为标签的属性,其赋值便是标签的属性值,一个属性对应一个属性值,进而用来区分不同的div标签。find_all方法的第一个参数是要获取的标签名,第二个参数id或者class_是标签的属性(Python中class是关键字,所以用class_加以区分)。

具体语句为:

allitem=soup.find_all(‘div’,class_=“inner_box”)

第三步:去除html标签

资料来源:西瓜财经资讯

(1)上述获取的allitem有两项,年报内容主要在第二项即allitem[0]中。可以发现allitem[0]含有大量特殊字符,主要有“ ”以及“
”。因此,考虑使用正则表达式去除这些特殊字符。

资料来源:网页

(2)正则表达式是对字符串操作的一种逻辑公式,可以达到如下的目的:给定的字符串是否符合正则表达式的过滤逻辑(“匹配”);从文本字符串中获取我们想要的特定部分(“过滤”)。

re.sub是个正则表达式的函数,用来实现比普通字符串的replace更加强大的替换功能。

re.sub(pattern,repl,string,count=0, flags=0)

——pattern,表示正则中的模式字符串

——repl,就是replacement,被替换的字符串,也可以是函数。

——string,即表示要被处理,要被替换的那个string字符串。

——count参数,可以只处理其中一部分匹配到的内容。

——flags,作为编译标志可以修改正则表达式的一些运行方式。

资料来源:网页

reg = re.compile(‘<[a-z]*\W>’) #匹配“
”,释义见下图

reg1 = re.compile(‘\W[a-z]*\W’) #匹配“ ”,释义见下图

news=reg.sub(‘’,str(allitem[1])) #将“
”替换为空

news1=reg1.sub(‘’,news) #将“ ”替换为空

注:运行news=reg.sub(‘’,allitem[1])时,可以发现结果返回TypeError: expected string or bytes-like object,说明数据类型不匹配,此时将allitem[1]改为str(allitem[1])即可。

第四步:导出文件到Word

资料来源:西瓜财经资讯

(1)本部分需要安装新的库docx,具体步骤如下:

——在cmd中输入pip install docx

(windows+R,然后输入cmd既可打开)

——在python中运行import docx,如果出现No module named 'exceptions’则继续进行如下步骤,如果未提示错误则直接忽略后续内容。

——在cmd中输入pip uninstall docx (把原来安装的docx卸载掉)

——从如下网址中下载python_docx-0.8.10-py2.py3-noneany

https://www.lfd.uci.edu/~gohlke/pythonlibs/

——将上述文件放于系统默认文件夹中。

——在cmd中输入pip install python_docx-0.8.6-py2.py3-none-any.whl

(2)安装成功后,具体可以进行如下步骤:

import docx #导入docx库

doc = docx.Document() #建立docx文件

doc.add_paragraph(news1) #添加具体内容

doc.save(‘C:/Users/juanjuan/Desktop/西瓜财经资讯/20201012 爬虫(六)/文字提取结果.docx’) #在特定路径中中保存文件

资料来源:word,西瓜财经资讯

附录:

下面列举Andriod、Firefox、Google Chrome、iOS的一些User Agent,直接copy就能用。

1.Android

Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19

Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

2.Firefox

Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0

Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0

3.Google Chrome

Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19

4.iOS

Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3

- 后言 -

◆ ◆ ◆ ◆

后续,小咖不仅将更新市场分析观点,也将不时推出利用Excel(VBA)、python等工具提升金融分析效率的小贴士,欢迎大家关注公众号,一同讨论及分享。

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值