[Day 4]餐前浓汤-Vagrant环境设定及BeautifulSoup安装

昨天我们介绍了Python跟Vagrant这两个东东是干啥的
以及这两个东东如何安装
今天我们会把剩下的vagrant设定弄完
以及安装BeautifulSoup
废话不多说,砸们累狗~

Vagrant参数修改

昨天我们安装完了Vagrant之後
接下来握们要来稍微的、小小的、轻轻的(?
修改我们的Vagrant参数
至於这些参数在哪呢?
还记得我们建立了一个资料夹吧
参数就在资料夹内的Vagrantfile
我们开启我们的文字编辑器,打开这个档案,就会出现这个东西

第一步呢,我们要先来修改我们的ip位址
这个ip位址之後我们做django时会用到,用来代表这个虚拟机器他的IP位址
以後开server时才能让用户找得到
啊这个东西要怎麽设定呢
首先我们先开启我们的cmder,输入ipconfig

输入之後会列出一堆网路的连线IP设定
我们找到目前连线的IP设定,并且看他的Default Gate
这个东西就是网路的预设Gate
简单来说就是,你家网路的大楼管理员啦
每当你要把东西寄出去时,就会把东西给大楼管理员,管理员填好大楼位址後把东西寄出去
然後当东西寄到大楼时,大楼管理员会看这个东西是在大楼内的哪个位置,然後把东西送给你
这就是Default Gate的功用
那居然都说这是栋大楼了,当然里面一定会有一些位置是没有住人的
所以我们的IP就选一个没有住人的房间,例如172.16.15.123
接着前面我们要在设定说这个IP只要让大楼内的人使用就好,还是大楼外的也可以用
也就是要不要让区域网路外的连线也进来
如果要让外面的人进来就把属性设成
config.vm.network :"public_network", "172.16.15.123"
那如果只想让大楼内的人使用就把他设成
config.vm.network :"private_network", "172.16.15.123"
那这里由於我们只是拿来当作内部开发功能而已,因此选择private_network就好
然後我们再把config.vm.network "forwarded_port", guest: 80, host: 8080这行注解取消
代表我们对外的80 port会对应到虚拟环境的8080 port
到这边,网路的IP位址就设定完成了

下一步就是设定共用资料夹啦
毕竟不是人人都是大神,vim说用就用,打字速度跟鬼一样,还能五分钟送你一个function
我们都在使用者名称标榜这是菜虫练功坊
因此我们会先建立一个共用资料夹,在共用资料夹内建立修改程序,再到虚拟环境测试
共同资料夹的设置也非常简单,只要下这段设定
config.vm.synced_folder "你在现实世界的资料夹", "你在虚拟世界的资料夹"
这样vagrant就会在虚拟环境建立一个资料夹,让两边都能共用档案啦
这里我们就改成config.vm.synced_folder "stonks", "vagrant_stonks"

这些东西处理完之後,别忘了关掉虚拟环境後重开机
虚拟环境关机的指令为vagrant halt
或是如果你在虚拟环境内可以下sudo shutdown(代表OS关机)
等到关机完成後再下vagrant up
这样新的设定就会套用上去啦

另外,如果你不想要关机,只是想要暂时离开vagrant虚拟环境挂机的话
可以直接下exit的指令,因为你是透过ssh进来的,这个指令会让你离开ssh
等要回去时再下一次vagrant ssh就好罗~

好喝的一碗汤-BeautifulSoup安装

说到网页爬虫,网页资料分析
不得不提起的套件,就是这个BeautifulSoup啦
至於为什麽他要叫做BeautifulSoup,捞网页跟汤到底有甚麽关系,我只能说

这东西的功用是甚麽呢
简单来说,就是帮你把网页里面的标签属性那些的直接帮你分类
你就不用在那边用split用半天,人家服务人员直接替你分切好还附上胡椒盐
听起来就超棒的对吧

那这东西到底要怎麽下载呢,非常简单
首先我们先回到现实世界中
输入pip install beautifulsoup4(这里记得要多加一个4)
然後由於我们要捞取外部网页,所以我们顺便下载requests套件,用他来发送HTP request
输入pip install requests

好了搞定,就是这麽方便快速
你发现程序码需要pandas pip install pandas
程序码需要numpy pip install numpy
程序码需要tensorflow pip i...等一下这是个例外,但是这跟我们要做的东东无关
如果来年还想参加铁人赛的话,到时候再专门做一篇文章跟大家详细讲解

总之,Python这东西就是你套件缺啥,就直接下pip install,高达九成五机率可以立刻解决
This is the reason why I love Python.

下载好之後一样我们来验证一下这东西是否成功下载
输入python进入terminal
然後输入import bs4

如果你看到他毫无反应,不像前面会跳出一堆有的没的东西,那我只能说
恭喜你安装成功啦~
毕竟人家python比较沉默寡言,就别为难人家了

好啦,下载完之後我们来实际测试一下这套件事不是真的能正常使用
前面都说了他能做网路爬虫,那我们就来爬个网页吧
虽然这篇的主轴是要捞取股票市场作分析,挑选投资标的达到财富自由
但毕竟只是测试而已,就容小的私心一下爬这个网页吧
https://schedule.hololive.tv/

首先第一步,当然要先开启新档,这样才能执行嘛
接着我们在档案内输入这段code

import requests
from bs4 import BeautifulSoup
res = requests.get("https://schedule.hololive.tv/")
soup = BeautifulSoup(res.text, "html.parser")
print(soup)

第一第二行不用说吧,就是把刚刚下载的套件import进来
第三行就是我们刚刚讲的,用这个套件送出HTTP request,用get method送到刚刚提到的url
送出之後,HTTP response就会送回来,我们这里用res变数把他接起来
第四行就是我们的BeautifulSoup魔法啦
第一个参数就是我们response的原始码,这里是纪录在text属性
第二的参数则是代表你的解析要用甚麽方式解析
就像是服务生会来替你分切,会依照各个不同的服务生有不同分切方式
有的习惯对切在对切,有的喜欢先横切完再直切,有的还会切前表演花式抛刀
但其实最後结果也是大同小异就是,就像切完後牛排还是牛排一样
那最後一行把结果print出来之後应该会出现这个东东
讲解完之後我们把档案储存,这里我们把它命名成test_bs4.py
然後输入python test_bs4.py执行

只要出现这个像HTML的原始码,就代表你成功啦~

下一篇我们就要来正式的把这种分切技术拿到我们的股市资讯观测站好好的小试身手了
我们会教你如何找到你要的资料,把他分切下来,然後把资料存起来
欲知股市到底会被分切成甚麽惨样(?
且听下回分解~


<<:  [Day1] 前言

>>:  Day 15. Hashicorp Vault: Backup (Integrated Storage)

Day02 捷径只能自己写吗?

Hello 大家 今天下班就是四天的连假了! 要去哪里玩呢? 疫情这样我应该是把自己关在家吧 其实捷...

Day 9 整理重复烦人的程序码!

该文章同步发布於:我的部落格 昨天我们实作了把 example 给拆开,并且让整个测试更具备逻辑。...

C#语言和你 SAY HELLO!!

第五天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知道...

Day30 实作todoList(五)完成删除事项功能+完赛心得

画面完成後,该怎麽从List.js的回圈元件中的按钮去互叫function, 让function去改...

Day 0x11 - 建立信用卡付款的订单

0x1 前言 之前都是建立付款方式为 ATM 的订单,另一个信用卡的流程都没跑过,今天就是要来跑一下...