如何装好Home Assistant,四种方式安装HA OS测试-程序员宅基地

技术标签: home assistant  智能家居  HA OS  

环境:

1.haos_generic-x86-64-11.1.img

2.Balena Etcher 1.18.11

3.haos_ova-11.1.qcow2

4.Ubuntu20.04

5.KVM

6.Docker version 24.0.5

7.HA OS11.2

8.联想E14笔记本

问题描述:

如何装好Home Assistant,四种方式安装HA OS测试

在这里插入图片描述

解决方案:

目录

一、联想E14笔记本部署HAOS(放弃)

二、联想E14笔记本安装Ubuntu再安装KVM虚拟机并部署 HA OS(放弃)

三、Ubuntu 下Docker部署 HAOS(放弃)

四、联想E14笔记本安装ESXI6.7并部署HAOS(成功)

官网介绍

第一步是安装Home Assistant。我们建议使用专用系统来运行 Home Assistant。 如果您不确定该选择什么,请按照 Raspberry Pi 指南 进行操作 安装 家庭助理操作系统 。

Home Assistant 提供四种不同的安装方法。建议使用以下两种方法之一:

家庭助理操作系统 :为家庭助理提供动力而优化的最小操作系统。 它带有 Supervisor 来管理 Home Assistant Core 和 Add-ons。推荐的安装方法。

Home Assistant Container :基于容器的 Home Assistant Core 独立安装(例如 Docker)。

有经验的用户可以使用两种替代安装方法:

家庭助理监督 :手动安装主管。
Home Assistant Core :使用 Python 虚拟环境手动安装。

下面的列表显示了基于所使用的设备和平台可用的安装方法。

如果您使用的 是 Home Assistant Blue ,则 Home Assistant 操作系统是 已安装。 继续加入。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述比较
在这里插入图片描述

目前官方支持的安装方式有4种,按照逻辑上的递进顺序和功能由少到多,分别是 Core(核心)、Container(容器)、Supervised(监管的)、OS(操作系统)。但从安装和维护难易程度上排序,最简单的是OS和Container,这也是官方推荐的两种方式;更难一些同时功能最简单的,是Core;最难的最不推荐的,是Supervised。

4种方式的简要介绍如下

在这里插入图片描述

HA OS功能最齐全、最省心、更新最方便(所有组件都可以自动检测新版本、点点鼠标就可以完成更新)。缺点是资源占用会高一点点。

Supervised适合高手,尤其是对Linux和docker比较了解、并且linux还需要完成其他功能的。相对更复杂、更容易碰到各种问题

Core其实就是运行在容器里的Core,插件啥的都得手工安装配置,升级也需要手工完成

根据官方最新统计,全球HA的使用者中,2/3用的是 OS 这种方式

1:名称缩写

   HA OS     家庭助理操作系统
   Container  家庭助理容器
   Core  家庭助理核心
   Supervised 家庭助理监督

2:Home Assistant Core 和 Home Assistant Container 的备份由 backup 整合

3:Home Assistant Core 和 Home Assistant Container 的备份要么是迁移到 HAOS 的工具,要么是备份的完全手动恢复

我们希望我们的用户能够获得最佳的家庭自动化体验,这首先要确保他们拥有与家庭助理配合良好的设备。因此,我们将开始将以下分类器应用于我们的集成:
分类 描述

假定状态 	我们无法获取设备的状态。我们能做的最好的事情就是根据我们上一个命令来假设状态。
	云轮询 	此设备的集成通过云进行,并且需要有效的互联网连接。轮询状态意味着稍后可能会注意到更新。
	云推送 	此设备的集成通过云进行,并且需要有效的互联网连接。一旦有新的状态可用,Home Assistant 将立即收到通知。
	本地轮询 	提供与设备的直接通信。轮询状态意味着稍后可能会注意到更新。
	本地推送 	提供与设备的直接通信。一旦有新的状态可用,Home Assistant 将立即收到通知。

官方github:

Core,全名 Home Assistant Core,曾用名小名:hass、ha、home assistant。
   最初版本0.0,2013.9.17诞生;2014.4.14正式发布时的版本号 0.7,之后(直到2020年12月份),版本号一直在小数点后面累加(注意,0.10是0.7的弟弟,0.100是0.99的弟弟),给人以一种一直不是正式版的感觉——官方也曾经在0.99之后发文说终于要出正式版了,当时很多人以为后面会按照1.xxx的形式,不料辣帮大神太谦虚,于是继续在小数点后折腾——0.100.x,一直到0.118.5;这种情况一直持续到去年年底,当时0.119测试版都出了好几个,又想着让0.119直接变身为1.0.0的正式版本号的样子。
  最后纠结来纠结去,确定了以“年+月+小版本”的形式编写版本号,第一个就是2020.12.0,一直沿用至今。

Supervisor,监工,supervised和hassos两种安装方式里的司令官,或者说总指挥。曾用名:HassIO、Hass.IO、Hass.io、Hassio、hassio、Hass.io supervisor。
显然,这些叫法和 对Supervised 这种安装方式的叫法经常混用,原因就是supervisor在supervised这种玩法里的地位和作用。
名称和版本号演进:
0.4,正式名称HassIO,2017.4.6
  0.36,名称加了个点Hass.IO,2017.6.5,后来IO又改成了小写io,有时候点被忽略
  0.102,2018.4.30
  103,版本号前面去掉了0.,2018.5.9
  194,改名为Hass.io supervisor,2020.1.8
  197,改名为Supervisor,2020.2.5
  249,2020.10.19
  2020.10.0,当月26号发布
  2021.10.0,本月7号发布

怀疑开发组里有国人大神,嫌弃250这个版本号,于是早在去年10月就率先改用了“年+月+小版本”的形式。

OS,全名Home Assistant Operating System,注意官方文档里有时候也把这个叫成“Home Assistant”——怀疑是粗心的编辑人员弄的。
0.1,正式名称Hass.io-OS,2018.4.18,只支持虚拟机
   0.3,改名为HassOS,2018.6.5,加入树莓派2的支持
   0.4,2018.6.12,加入树莓派0、1和3的支持,并增加64位版本
   1.3,2018.7.7,正式发布
   2.8,2019.2.4
   3.7,2019.12.16
   4.7,2020.5.26
   5.8,2020.12.13
   6.0,2021.6.9
   6.4,2021.9.9

Container:
  大概从 Core 0.14.2 版本开始,官方制作docker镜像,2016.5.1
  一直到现在随核心同步升级(当然会比核心版本稍微慢一会儿,毕竟先有核心再有容器/镜像),没有也不需要自己的版本号。

上面基本上还是以安装方式的维度整的。其实还有两个重要模块:
frontend,前端,也有自己的版本号;
iOS和安卓版官方app,大名Companion,有自己独立的文档网站!

联想E14笔记本安装HAOS

硬件:联想E14笔记本 8核4G内存128GSSD

分区

1.要进入电脑 BIOS界面,确保已启用 UEFI 引导模式

一些常见的电脑品牌以及它们进入BIOS设置的常用快捷键:

    惠普(HP):按下F10或Esc键重启电脑,然后在启动时按F10键进入BIOS设置。

    戴尔(Dell):按下F2键或Del键重启电脑,然后在启动时按F2键或Del键进入BIOS设置。

    联想(Lenovo):按下F1或F2键重启电脑,然后在启动时按F1或F2键进入BIOS设置。

    华硕(ASUS):按下F2键或Del键重启电脑,然后在启动时按F2键或Del键进入BIOS设置。

    宏碁(Acer):按下F2键或Del键重启电脑,然后在启动时按F2键或Del键进入BIOS设置。

    苹果(Apple):按下Option键或Command+R键重启电脑,然后根据系统提示进入恢复模式或选择启动磁盘。

    微软(Microsoft)Surface:按下音量上键同时按下电源键,然后在启动时松开电源键,进入UEFI固件设置。

请注意,以上是一些常见的快捷键在开机时就按,具体适用于不同型号的电脑可能会有所不同

在这里插入图片描述2.禁用安全启动

在这里插入图片描述

1.将HA OS映像下载到电脑

https://github.com/home-assistant/operating-system/releases/download/11.1/haos_generic-x86-64-11.1.img.xz

在这里插入图片描述

2.下载映像启动制作工具
在这里插入图片描述
在这里插入图片描述下载完成
在这里插入图片描述
插上U盘,进入PE系统

打开工具,选择从文件烧录

在这里插入图片描述
在这里插入图片描述
选择

在这里插入图片描述选择系统硬盘
在这里插入图片描述开始烧录

在这里插入图片描述再次提醒,点确定
在这里插入图片描述
制作中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

直接重启电脑

在这里插入图片描述

检查电脑网线是否畅通

在这里插入图片描述

成功启动后,查看获取的地址,http://localhost:8123 或 http://X.X.X.X:8123 (将 X.X.X.X 替换为您机器的 IP 地址)

在这里插入图片描述
磁盘空间不足
在这里插入图片描述PE下把剩下的都给他
在这里插入图片描述还是不行,报了别的错误
在这里插入图片描述

之前没成功测试,把硬盘装入硬盘盒做成U盘后挂载到别的电脑,然后用balenaEtcher制作成功
在这里插入图片描述
还是这种报错,可能没科学上网导致,具体原因没有深入研究,感觉没必要后期维护麻烦
在这里插入图片描述
最后果断放弃

二、Ubuntu安装 KVM虚拟机并部署 HA OS

硬件:联想E14笔记本 8核4G内存128GSSD

1.验证CPU是否支持硬件虚拟化

root@st-ThinkPad-E14:~# grep -Eoc '(vmx|svm)' /proc/cpuinfo
16

2.检查 VT 是否在 BIOS 中启用

安装 apt install cpu-checker

root@st-ThinkPad-E14:~# apt install cpu-checker
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  msr-tools
下列【新】软件包将被安装:
  cpu-checker msr-tools

kvm-ok 查看

root@st-ThinkPad-E14:~# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

3.安装KVM

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

在这里插入图片描述

激活

systemctl is-active libvirtd

在这里插入图片描述
4.启用KVM模块:默认情况下,Ubuntu会自动加载KVM模块,但你可以检查一下以确保它已经加载。运行以下命令来验证

lsmod | grep kvm

root@st-ThinkPad-E14:~# lsmod | grep kvm
kvm_intel             376832  0
kvm                  1015808  1 kvm_intel

5.启动虚拟化和设置开机自启

# systemctl start libvirtd 
# systemctl enable libvirtd
# systemctl list-unit-files |grep libvirtd.service 

查看是否成功
root@st-ThinkPad-E14:~# systemctl list-unit-files |grep libvirtd.service
libvirtd.service                                                          enabled         enabled 


创建虚拟机命令(留着下次参考,本案例不用此命令)


cd /var/lib/libvirt/images/hassos-vm
virt-install --import --name hassos \
--memory 4096 --vcpus 4 --cpu host \
--disk haos_ova-6.6.qcow2,format=qcow2,bus=virtio \
--network bridge=br0,model=virtio \
--osinfo detect=on,require=off \
--graphics none \
--noautoconsole \
--boot uefi


# virt-install --name=kvm-centos7 --ram=2048 --vcpus=2 --disk path=/root/kvmraw/centos7v1(虚拟机名称和位置).qcow2,size=10,format=qcow2 --accelerate --cdrom /root/isolib/CentOS-7-x86_64-DVD-1611.iso(你的镜像名称和位置) --vnc  --vnclisten=0.0.0.0 --network bridge=br0,model=virtio(执行完会创建虚拟机,并且弹出页面)

6.使用命令ifconfig查看自己的ip等

修改01-network-manager-all.yaml文件:

# nano /etc/netplan/01-network-manager-all.yaml

手动

network:
    version: 2
    ethernets:
        enp3s0:(改为你的网卡名字)
            dhcp4: false
            dhcp6: false
    bridges:
        br0:
            addresses: [192.168.1.2/24](你的ip)
            gateway4: 192.168.1.1 (你的网关)
            nameservers:
                addresses: [114.114.114.114, 8.8.8.8](这是DNS1,DNS2)
                search: [msnode]
            interfaces: [enp3s0(改为你的网卡名字)]


自动

network:
  version: 2
  renderer: networkd
  ethernets:
    wlp5s0:
      dhcp4: no

  bridges:
    macvtap0@wlp5s0:
      dhcp4: yes
      interfaces: [wlp5s0]
      




sudo netplan apply

nm-connection-editor

在这里插入图片描述

在这里插入图片描述

配置kvm ha

1.启动虚拟机管理器:现在,你可以启动virt-manager,这是KVM的图形界面管理工具。在终端中运行以下命令:

virt-manager

在这里插入图片描述2.官网下载kvm镜像文件

在这里插入图片描述
3.将文件上传到root文件夹
在这里插入图片描述4.在系统中解压镜像文件
xz -d -v haos_ova-11.1.qcow2.xz
在这里插入图片描述在这里插入图片描述
5.新建虚拟机

在这里插入图片描述6.导入之前上传的镜像
在这里插入图片描述选择本地镜像
在这里插入图片描述选择解压后的.qcow2镜像文件
在这里插入图片描述

7.选择 Generic Default 为操作系统
在这里插入图片描述
8.配置虚拟机参数

最低配置:

2 GB 内存
32 GB存储
2 个 vCPU

在这里插入图片描述
在这里插入图片描述9.选中 “安装前自定义配置 ”框。
在这里插入图片描述
10.选择”下 在“网络 ,选择您的网桥

在这里插入图片描述

11.在自定义下,选择 “概况 ”> “固件 ”> “UEFI x86_64:… 。确保选择 OVMF 的非 secureboot 版本(不包含单词 secure、 secboot等),例如, /usr/share/edk2/ovmf/OVMF_CODE.fd

在这里插入图片描述
12.单击 “添加硬件 ”(左下角),然后选择 “信道 ”,选择设备类型: unix 点应用

在这里插入图片描述

13.最后,选择“开始安装”(左上角)

在这里插入图片描述
在这里插入图片描述
自动开机在这里插入图片描述14.进入系统
在这里插入图片描述

您可能希望立即设置的 VM 自动启动

virsh autostart hassos

root@st-ThinkPad-E14:~# brctl show
bridge name     bridge id               STP enabled     interfaces
macvtap0@wlp5s0         8000.fe5400be6362       yes             vnet0
root@st-ThinkPad-E14:~# sudo systemctl edit docker.service
No files found for docker.service.
Run 'systemctl edit --force --full docker.service' to create a new unit.
root@st-ThinkPad-E14:~# virsh list
 Id   Name   State
----------------------
 3    HA     running

root@st-ThinkPad-E14:~# virsh net-list --all
 Name   State   Autostart   Persistent
----------------------------------------

root@st-ThinkPad-E14:~# cd  /etc/libvirt/qemu/networks
root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# ls
autostart
root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# touch br0.xml
root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# ls
autostart  br0.xml
root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# nano br0.xml
root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# virsh net-define /tmp/br0.xml
error: Failed to open file '/tmp/br0.xml': 没有那个文件或目录

root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# virsh net-define br0.xml
Network macvtap0@wlp5s0 defined from br0.xml


root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# virsh net-list --all
 Name              State      Autostart   Persistent
------------------------------------------------------
 macvtap0@wlp5s0   inactive   no          yes

root@st-ThinkPad-E14:/etc/libvirt/qemu/networks# virsh net-start macvtap0@wlp5s0

root@st-ThinkPad-E14:~# virsh net-list --all
 Name              State      Autostart   Persistent
------------------------------------------------------
 macvtap0@wlp5s0   inactive   no          yes

root@st-ThinkPad-E14:~# virsh net-autostart macvtap0@wlp5s0
Network macvtap0@wlp5s0 marked as autostarted

root@st-ThinkPad-E14:~# virsh net-list --all
 Name              State      Autostart   Persistent
------------------------------------------------------
 macvtap0@wlp5s0   inactive   yes         yes



页面输入: login

在这里插入图片描述

nmcli con show
在这里插入图片描述

nmcli dev status
在这里插入图片描述
可以看到HA连接了一个网口,名叫:Wired connection 1

然后继续输入:nmcli con edit “Wired connection 1” ,其中 Wired connection 1 是要改成自己HA网口的名字的

在这里插入图片描述print ipv4 看一下当前的网口配置参数的,这时候可以看到网口参数是自动配置的,网关DNS这些都是空的
在这里插入图片描述
set ipv4.addresses 192.168.1.123/24 设置自己想要的ip地址,注意不要漏了 /24

第一次修改ip地址会提示是否改为“手动”设置,输入y确认就行

输入:set ipv4.dns 192.168.1.200 设置DNS,DNS地址就指向旁路由的ip地址

输入:set ipv4.gateway 192.168.1.200 设置网关,网关地址也是指向旁路由的ip地址

在这里插入图片描述
在这里插入图片描述
如果没问题就输入:save 保存,会提示更新成功,然后输入:quit 退出设置。

在这里插入图片描述输入:nmcli con reload 重新载入

最后重启虚拟机
reboot

HA就可以通过手动设置的旁路由网关正常联网了,能够联网的情况下HA就能正常安装启动成功,然后出现ip地址的页面

在这里插入图片描述获取不到IP

在这里插入图片描述

如果你想修改或者重置网口参数的话,直接用  set ipv4.dns xxxxx 是不行的,它会添加多个dns,而不是修改以前的dns

nmcli connection modify <connection_name> ipv4.dns <new_dns_server> (将 <connection_name> 替换为您的网络连接名称,<new_dns_server> 替换为您想要设置的新 DNS 服务器地址)

ip更改类似

还有一个有笨办法就是把网口配置全部删除,然后新建网口配置。

输入:nmcli con delete "Supervisor enp0s3"   就可以把网口配置全部删除了

此时使用 nmcli dev status 命令可以看到网口是 disconnect 的

然后再输入 nmcli con add type ethernet con-name main ifname enp0s3 可以新建网口,其中 main 是新建网口的名称,可以随意,不用跟原来的一样,enp0s3 就是你物理网口的名称了,这个根据你自己的网卡来

新建网口之后再次用 nmcli con edit "Supervisor enp0s3" 命令就可以重新按照上面的方法自定义网口参数了,这时候edit的名称就是你新建网口的 main 的名称了,这个要注意。

使用 nmcli 命令来重启网卡,您可以使用以下命令:

    查找您要重启的网络连接名称:

nmcli connection show

重启网络连接:

sudo nmcli connection down <connection_name> && sudo nmcli connection up <connection_name>

(将 <connection_name> 替换为您要重启的网络连接名称)


Ubuntu 下Docker安装 HAOS(放弃)

1.安装docker

apt install docker.io

在这里插入图片描述

突然不想这样安装了 ,放弃

四、联想E14笔记本安装ESXI6.7并部署HAOS

1.下载ESXI6.7安装镜像文件

去找网卡驱动集成到镜像的安装文件,先看看自己网卡是上面型号我这笔记本是瑞昱8168是有线网卡

在这里插入图片描述

下载镜像
在这里插入图片描述
我也试了最新版8.0的没有网卡驱动安装失败
在这里插入图片描述

2.进入PE把安装文件ISO提取到本地,然后重启电脑,就会自动引导安装,你也可以把镜像文件写到U盘安装

具体单硬盘如何安装,可参考我这篇类似文章-点我

3.开机进入引导界面
在这里插入图片描述按F11
在这里插入图片描述
OK

在这里插入图片描述
默认

在这里插入图片描述

4.设置管理员root密码

在这里插入图片描述

F11安装在这里插入图片描述

在这里插入图片描述

完成按回车重启在这里插入图片描述在这里插入图片描述
5.重启前检查网线连通性

成功启动,显示IP

在这里插入图片描述
6.局域网内电脑浏览器中输入上面IP,然后用前面设置root的账户密码登入

在这里插入图片描述
登入成功

在这里插入图片描述
7.激活自行解决

学习使用,及时删除

1.HV4WC-01087-1ZJ48-031XP-9A843
2.NF0F3-402E3-MZR80-083QP-3CKM2
3.4F6FX-2W197-8ZKZ9-Y31ZM-1C3LZ
4.JZ2E9-6D2DK-XZQD0-632E4-33E7Z
5.MZ48M-DNK56-ZZJD0-RTCE2-9321X
6.0Y0AJ-4P29H-LZV81-59AQ2-C291V

8.官网下载安装文件

在这里插入图片描述
在这里插入图片描述
9.创建虚拟机

最低推荐作业:

2 GB RAM 2 GB 内存
32 GB Storage 32 GB存储
2vCPU 2 个 vCPU

选择从OVA文件创建
在这里插入图片描述选择刚才下载的.OVF文件
在这里插入图片描述选择存储
在这里插入图片描述选择网络
在这里插入图片描述结束
在这里插入图片描述
在这里插入图片描述
完成
在这里插入图片描述

10.设置自动启动 ,查看控制台

进入【主机】-【管理】-【系统】-【自动启动】

在这里插入图片描述
又出现网络问题

在这里插入图片描述11.最后科学上网解决

简单讲下我这原理,公司网络环境,一台安装软路由opwrt,然后在服务里找到pwl配置订阅,启用服务选择适合节点,最后手动订阅

在这里插入图片描述

4台电脑、一台安装软路由opwrt(需要两张网卡)接笔记本共享笔记本无线网络,一台电脑安装好HAOS接到opwrt,一台电脑调试。期间可以把EXIS和HA管理地址在opwrt配置端口转发,这样好管理

在这里插入图片描述等待20分钟
在这里插入图片描述

12.创建账户

在这里插入图片描述设置地区
在这里插入图片描述下一步
在这里插入图片描述完成
在这里插入图片描述13.成功进入页面
在这里插入图片描述版本
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42672685/article/details/134574921

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;#include&lt;malloc.h&gt;#include&lt;iostream&gt;#include&lt;stack&gt;#include&lt;queue&gt;using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签