<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[@zhujj_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hao_13</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hao_13]]></copyright><item><title><![CDATA[一步一步学习使用 MediaSource 实现动态媒体流]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/137609377</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/137609377</guid><author>hao_13</author><pubDate>Sat, 13 Apr 2024 22:40:41 +0800</pubDate><description><![CDATA[在这里根据 timescale，duration 的单位是 1/16000 s，那么实际的 duration 为 1/16000 * 80000 = 5s，也就是每一个 SegmentURL 的分段时长（就是我们设定的五秒）。对比源代码所用的视频和自己的视频，发现源代码所用的视频在未点击播放时，已经加载了一小段。观察源代码，根据以下信息，首先考虑到是 mimeCodec 与自己的视频不匹配的问题。直接运行所下载的示例代码，视频的播放效果是，每播放一段时间后，都会请求一段视频流。]]></description><category></category></item><item><title><![CDATA[Firefox 关键词高亮插件的简单实现]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/137247062</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/137247062</guid><author>hao_13</author><pubDate>Wed, 03 Apr 2024 22:50:11 +0800</pubDate><description><![CDATA[遍历构造的数组中的内容，如果当前值等于关键词，那么构造一个强调标签 Strong 将关键词作为 innerText，并添加指定的样式和样式类名，然后加入到当前所遍历的节点之前；如果有纯文本节点，并且该纯文本节点中的内容包含了关键词，那么构造出一个数组，使用该数组来区分非关键词内容和关键词内容，以及他们之间的位置关系。遍历每一个节点，取出节点的类型-->nodeType 和节点的文本内容 -->content。如果是纯文本节点，则该节点的 nodeType 为3，如果是元素节点，则为 1。]]></description><category></category></item><item><title><![CDATA[python爬虫实战——小红薯]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/136687023</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/136687023</guid><author>hao_13</author><pubDate>Wed, 13 Mar 2024 21:45:15 +0800</pubDate><description><![CDATA[任务：在 win 环境下，利用 Python、webdriver、JavaScript等，获取 xiaohongshu 某个博主的全部作品。本文仅做学习和交流使用。1、博主页面分析section 代表每一项作品，但即使博主作品有很多，在未登录状态下，只会显示 20 项左右。向下滚动页面，section 发生改变（个数不变），标签中的 index 会递增。向下滚动页面时，到一定的范围时，会发送一个获取作品数据的请求，该请求每次只请求 30 项作品数据。]]></description><category></category></item><item><title><![CDATA[python爬虫实战——DouYin]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/136661025</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/136661025</guid><author>hao_13</author><pubDate>Tue, 12 Mar 2024 23:25:14 +0800</pubDate><description><![CDATA[以登录状态（或者有cookies本地存储等状态）访问目标博主页面，滚动到作品最底部，然后在控制台中执行JavaScript脚本，获取全部作品的信息（在这里是作品链接以及作品类型），然后写出到文本文件中。上述的操作是在无登录状态下进行的，即使在webdriver中操作让页面滚动，也只能获取到有限的作品，大约是 20 项左右。然后在python中读入该文件，使用json解析，转成字典列表的形式，遍历列表，对每一个字典（就是每一个作品）进行处理即可。进入作品页前 判断作品是视频作品还是图文作品。]]></description><category></category></item><item><title><![CDATA[Linux —— 定时任务（sleep、crontab、at）]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/135176486</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/135176486</guid><author>hao_13</author><pubDate>Tue, 12 Mar 2024 19:20:19 +0800</pubDate><description><![CDATA[定时任务开启后，每隔一分钟，第一句的结果将通过邮件发送到 /var/spool/mail/root 中，第二句的结果将添加到指定的文件末尾（由于输出的文件是相对路径，当前的用户为 root，则crontab 执行后，会输出到 /root/outputTime.txt 中，即用户主目录下的 outputTime.txt 文件中 ）。program 可以是一个命令，也可以是一个 Shell 程序，推荐将定时执行的程序放到一个 Shell 程序中，让定时任务去执行 Shell 程序。]]></description><category></category></item><item><title><![CDATA[Linux 学习笔记（3） —— Shell 批处理脚本以及字符串的处理]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/135141975</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/135141975</guid><author>hao_13</author><pubDate>Sat, 23 Dec 2023 13:49:15 +0800</pubDate><description><![CDATA[注意，在给变量赋值的命令中，如果等号两侧有空格，则会处理失败。如下图，如果等号左右两边都有空格，则会把第一个 username 作为命令，= 作为命令的第一个参数，'abc' 作为第二个参数来进行处理。使用频率最高的环境变量是 PATH，PATH 中定义了一批文件夹（路径），表示只要是在这个目录下的命令，就可以在命令行中直接执行，而不需要输入完整的路径。如果：$10，本意想接收第十个参数，实际上输出的是第一个参数拼接上 0 的结果。计算匹配字符串的长度，可以看见是从头开始匹配的，返回的是匹配的字符个数。]]></description><category></category></item><item><title><![CDATA[网络安全概述——常见网络攻击与网络病毒、密码体制、安全协议等]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/133687555</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/133687555</guid><author>hao_13</author><pubDate>Tue, 10 Oct 2023 23:28:30 +0800</pubDate><description><![CDATA[接收方 B 接收到后，先将 D(H) 和报文 X 进行拆分，使用 A 的公钥对 D(H) 进行解密核实，还原出报文摘要 H，B 再将原报文通过同样的报文摘要算法进行计算，得出自己计算出来的报文摘要，通过与解密出来的报文摘要进行比对，就可以判断出报文是否被篡改。主机 A 向 AS 发送请求，AS 验证主机 A 的身份，确定 A 是合法的用户后，会返回两部分内容给主机 A，包括：使用 Ka 加密的 Ks，先使用 Ktg 加密，再使用 Ka 加密的主机 A 的信息以及 Ks。通常每条链路上都使用不同的加密密钥。]]></description><category></category></item><item><title><![CDATA[应用层协议——DNS、DHCP、HTTP、FTP]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/133554487</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/133554487</guid><author>hao_13</author><pubDate>Thu, 05 Oct 2023 18:02:33 +0800</pubDate><description><![CDATA[如 .gov 代表的是政府部门，.cn 代表的是中国地区，二者都是顶级域名，但是在 www.gov.cn 中，.cn 是顶级域名，而 .gov 是二级域名（在一个完整的域名中，最右侧的是顶级域名，往左分别为二、三……此外，Hosts文件还可以加快域名解析，对于要经常访问的网站，我们可以通过在Hosts中配置域名和IP的映射关系，提高域名解析速度。，这些参数根据不同的请求方法，可能会在不同的地方，如 GET 和 DELETE 请求的参数通常拼接在 URL 中，这样的参数也分为查询参数和路径参数。]]></description><category></category></item><item><title><![CDATA[传输层协议——TCP、UDP]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/133522962</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/133522962</guid><author>hao_13</author><pubDate>Wed, 04 Oct 2023 00:13:06 +0800</pubDate><description><![CDATA[主机 A 接收到服务器B的回应，再回应服务器 B ，ACK=1 表示确认了服务器 B 的TCP建立请求，响应服务B的期望，即便展示还没有数据，也发送一个seq，seq = x + 1，同时 ack = y + 1，也是对刚刚服务器 B 发送过来的内容的一个确认，同时也提出期望，希望服务型下次发送消息时的 seq 为 y + 1。[④ ~ ⑤] 到 ④ 时，cwnd = 16，发送方一连收到三个重复确认，则门限减为当前 cwnd 的一半，即 ssthresh = 8，而 cwnd 变为与门限值一致；]]></description><category></category></item><item><title><![CDATA[网络层常见协议——IPV4、IPV6、ARP、ICMP、QoS]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/133484733</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/133484733</guid><author>hao_13</author><pubDate>Tue, 03 Oct 2023 11:43:29 +0800</pubDate><description><![CDATA[若主机 hostA 的 MAC 地址为 aa-aa-aa-aa-aa-aa，主机 hostB 的 MAC 地址为 bb-bb-bb-bb-bb-bb。而不同网段的主机之间相互通信需要使用到路由器）。但是，从H1 到 R1 后，数据帧中的目的 MAC 地址由 R1 的 MAC 地址变成 H2 的 MAC 地址HA2，源MAC地址由 HA1 变成 HA4。当出现跨网段的 ARP 请求时，由离源主机最近的路由器将自己的 MAC 地址返回给发送 MAC广播请求的主机，实现 MAC 地址代理最终使主机能够正常通信。]]></description><category></category></item><item><title><![CDATA[python 学习笔记（6）—— Flask 、MySql]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132829474</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132829474</guid><author>hao_13</author><pubDate>Wed, 13 Sep 2023 00:07:53 +0800</pubDate><description><![CDATA[这个包是一个 Python 的加密库，它提供了许多加密算法的实现，包括 'sha256_password' 和 'caching_sha2_password' 这两种 MySQL 的密码加密方式。该返回值可以是一个字符串，也可以是一个元组（包含状态码、响应体等的信息）等的形式。该错误指出需要 'cryptography' 包来处理 'sha256_password' 或 'caching_sha2_password' 的认证方式。：正在被触发的CSP指令 和 违反的CSP指令。：被CSP阻止的资源URI。]]></description><category></category></item><item><title><![CDATA[python 学习笔记（5）——SMTP 使用QQ邮箱发送邮件]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132818286</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132818286</guid><author>hao_13</author><pubDate>Mon, 11 Sep 2023 23:14:40 +0800</pubDate><description><![CDATA[如果是其他的邮箱，图片有可能可以显示（如企业微信的邮箱），html 的样式也可能会丢失不奏效。POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。将 receiver 写成每个人的邮箱账号数组即可。以下都 以 QQ邮箱 为发送方举例；使用 QQ邮箱发送邮件，需要到 “]]></description><category></category></item><item><title><![CDATA[python 学习笔记（4）—— webdriver 自动化操作浏览器（基础操作）]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132701205</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132701205</guid><author>hao_13</author><pubDate>Tue, 05 Sep 2023 23:06:02 +0800</pubDate><description><![CDATA[使用 driver 前，需要下载浏览器对应的 driver。如要在 Chrome 浏览器上操作，就要下载Chrome Driver。下载并安装完成后，将.exe文件拷贝到 python.exe 同级的目录下。点击搜索后，会新创建一个标签页，此时需要更新 driver 到新的标签页面。这里使用Chrome浏览器，下载Chrome Driver。此时浏览器会打开一个新的标签页，我们需要。点击后，同样会新开一个标签页，此时我们把。在当前界面的右上角，有搜索功能，尝试。在界面执行一个脚本，滚动到页面底部。]]></description><category></category></item><item><title><![CDATA[Linux 学习笔记（2）—— 关于文件和目录、用户权限]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132675732</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132675732</guid><author>hao_13</author><pubDate>Mon, 04 Sep 2023 22:49:44 +0800</pubDate><description><![CDATA[该文件每行代表一个用户账号，记录了账号的所有信息，包括用户名、密码、用户ID（UID）、组ID（GID）、连接、主目录和默认的shell等。在正式的生产和服务器环境中，尽量使用普通的账号＋人工权限设定的方式，避免出现漏洞后被人以root权限利用系统。在 linux 中，root 拥有最高的权限，所有文件或文件夹的权限设定对 root 都是无效的。在Linux中，文件归档的作用是将多个文件组合成一个单一的文件，这个过程称为归档。查找当前目录下所有不以a、b、c、d、e、f、A、B、C、D、E、F开头的文件。]]></description><category></category></item><item><title><![CDATA[Linux 学习笔记（1）——系统基本配置与开关机命令]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132643373</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132643373</guid><author>hao_13</author><pubDate>Sat, 02 Sep 2023 23:56:56 +0800</pubDate><description><![CDATA[：系统配置文件和目录，存放系统的一些配置文件和目录，如`/etc/passwd`、`/etc/hosts`、`/etc/profile`等。如果希望在局域网中使用固定的IP地址，可以通过在设备上手动配置静态IP地址来实现，这样可以确保设备始终使用相同的IP地址。`：系统库文件，存放系统的共享库文件，如常见的`libc.so`、`libpthread.so`等。`：设备文件系统，存放系统中的各种设备文件，如串口、光驱、USB设备等。`：包含最经常使用的命令，如`ls`、`cd`、`echo`等。]]></description><category></category></item><item><title><![CDATA[window 常用基础命令]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132629415</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132629415</guid><author>hao_13</author><pubDate>Sat, 02 Sep 2023 20:12:03 +0800</pubDate><description><![CDATA[0、起步0、起步0-1) 获取命令的参数指引netstat /?0-2) 关于两个斜杠：1、开关机类指令2、切换目录（路径）3、与文件或目录相关的操作3-1）查询目录下所有非隐藏目录和文件(dir)查询当前目录查询指定目录dir *.txt3-2）查看目录下的隐藏文件( /a、/a:h )查询C盘下所有隐藏目录和文件3-3）查看目录下的所有目录和文件，按日期进行排序( /o:D、/o:-D )查询当前目录下所有的文件并按日期升序排序查询C盘目录下所有非隐藏的目录，并按日期降序排序。]]></description><category></category></item><item><title><![CDATA[python 笔记（3）——request、爬虫、socket、多线程]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132608653</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132608653</guid><author>hao_13</author><pubDate>Fri, 01 Sep 2023 13:01:47 +0800</pubDate><description><![CDATA[利用 requests.session() 获取到 session 对象，使用 session 对象发送请求，可以维护cookies 和 session，不必自己操作。1、find、findAll 根据标签、属性等进行查找（find 是查找第一个匹配的；解析器可以使用：html.parser、lxml、xml、html5lib。查找页面元素的通用方法：find、findAll、select。1、使用requests发送http请求。3-2-2）使用css选择器来进行查找。1-2）发送 post 请求。]]></description><category></category></item><item><title><![CDATA[python 笔记（2）——文件、异常、面向对象、装饰器、json]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132599248</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132599248</guid><author>hao_13</author><pubDate>Thu, 31 Aug 2023 13:25:23 +0800</pubDate><description><![CDATA[单引号会转换成双引号。在一个函数中定义了一个内部函数，并且该内部函数使用了外部函数的参数或变量，则称为闭包。装饰器本身也是一个函数，装饰器给其他的函数使用，可以改变程序执行的顺序。装饰器的内部函数接收到的参数就是传递给test的参数，第四行时，执行了 test 函数。明天是星期三，听说还是要下大雨，我觉得我不会开心；明天是星期三，听说还是要下大雨，我觉得我不会开心；昨天是星期一，天气晴朗，我很开心；今天是星期二，下了大雨，我很难过；昨天是星期一，天气晴朗，我很开心；今天是星期二，下了大雨，我很难过；]]></description><category></category></item><item><title><![CDATA[python 笔记（1）——基础和常用部分]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/132584670</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/132584670</guid><author>hao_13</author><pubDate>Wed, 30 Aug 2023 22:06:21 +0800</pubDate><description><![CDATA[可以看成是包含若干个python模块的文件夹（目录），但是该目录下需要有一个 __init__.py 文件才能被识别为一个包（可以在需要的时候在目录下直接创建一个__init__.py 文件）；在导入一个模块的时候，实际上是把该模块的代码重新执行了一遍；元组是不可改变的，因此元组没有列表中的append、pop、remove等的方法。是包含python定义和语句的文件，每一个以.py后缀结尾的文件都可以看成是一个模块；：统计x在列表中出现的次数；：x再列表中第一次出现的位置。7-4）列表与元组之间的转化。]]></description><category></category></item><item><title><![CDATA[React-学习笔记（8—react-router@5 and @6）]]></title><link>https://blog.youkuaiyun.com/hao_13/article/details/131491497</link><guid>https://blog.youkuaiyun.com/hao_13/article/details/131491497</guid><author>hao_13</author><pubDate>Sat, 01 Jul 2023 17:22:23 +0800</pubDate><description><![CDATA[1-1、在项目中安装路由这里使用旧版本5：新版本是@61-2、一个项目使用一个路由器来管理路由即可在 index.jx 文件中，渲染App时，用 指定的路由器包裹 App 组件使用 BrowerRouter 或 HashRouter1-3、 路由组件和一般组件的区别一般组件：路由组件：一般组件：component。]]></description><category></category></item></channel></rss>