<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JiaYou_PPZ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JiaYou_PPZ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JiaYou_PPZ]]></copyright><item><title><![CDATA[使用python捕获print()输出，并生成txt文本]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/136556171</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/136556171</guid><author>JiaYou_PPZ</author><pubDate>Fri, 08 Mar 2024 11:06:52 +0800</pubDate><description><![CDATA[通过在代码首尾使这些类，可捕获期间的打印输出，并保存到一个以时间命名的txt文本作为日志文件。]]></description><category></category></item><item><title><![CDATA[【python】CAD二次开发，图元对象的交点获取方法IntersectWith]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/136070618</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/136070618</guid><author>JiaYou_PPZ</author><pubDate>Wed, 07 Feb 2024 16:25:44 +0800</pubDate><description><![CDATA[CAD二次开发，图元对象的交点获取方法IntersectWith，函数适用对象：All Drawing Objects (Except Pviewport and PolygonMesh)]]></description><category></category></item><item><title><![CDATA[爬虫批量获取中文文献引用[selenium+知网]]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/129759470</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/129759470</guid><author>JiaYou_PPZ</author><pubDate>Fri, 24 Mar 2023 22:16:12 +0800</pubDate><description><![CDATA[首先将文献下载保存至一个文件夹，文件命名格式为 " XXXXXX_作者.pdf "（知网下载pdf默认格式），然后通过python提取文件名，利用selenium访问知网实现搜索、引用的功能，然后抓取该文献引用格式。：毕业论文中文献往往高达几十篇，调整引用格式（如标点后需加“空格”，作者超过三人，第三人以后需改为“，等”），虽然有各种论文管理软件，但能利用自己所学技能批量获取文献引用也挺有趣。缺点很多，包括英文文章没有考虑，文献命名格式固定等等，不过作为一个小demo玩玩还是可以的。]]></description><category></category></item><item><title><![CDATA[python+selenium批量下载上海证券交易所2012年至2021年物流公司年报]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/128567734</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/128567734</guid><author>JiaYou_PPZ</author><pubDate>Thu, 05 Jan 2023 18:08:00 +0800</pubDate><description><![CDATA[python+selenium批量下载上海证券交易所2012年至2021年物流公司年报]]></description><category></category></item><item><title><![CDATA[最新版selenium快速入门【Python】]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/128425007</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/128425007</guid><author>JiaYou_PPZ</author><pubDate>Fri, 23 Dec 2022 23:53:02 +0800</pubDate><description><![CDATA[目前selenium版本与之前版本的主要差别，首先导入By包，定位元素时需在By后面指定定位器，详细可查看文档。]]></description><category></category></item><item><title><![CDATA[访问静态网页出现no explicit mapping for /error异常]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126479141</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126479141</guid><author>JiaYou_PPZ</author><pubDate>Tue, 23 Aug 2022 10:18:33 +0800</pubDate><description><![CDATA[异常：This application has no explicit mapping for /error, so you are seeing this as a fallback。今天在静态资源包下新加了个网页，浏览器输入正确访问路径时，过滤器显示放行，但网页报错。而新改的内容不生效，让我想起平时常用的clean。由于添加了新的资源，需要应clean移除所有上一次构建生成的文件。]]></description><category></category></item><item><title><![CDATA[记录一下最近遇见的小bug——2022-8-11]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126293657</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126293657</guid><author>JiaYou_PPZ</author><pubDate>Thu, 11 Aug 2022 21:34:45 +0800</pubDate><description><![CDATA[2）持久层使用mybatis-plus简化开发，操作时实体类与表对应，在进行save（）操作时，由于未将实体类对象的属性设置全（有的属性值为null），导致后台报错，这个问题可通过控制台输出的sql语句检查出问题。（3）在进行异常处理时，由于未使用@ResponseBody注解，导致报错。responseBody使方法的返回值以json字符串的形式返回给前端，如果不设置，那服务器无法向前端响应数据，所以报错。（1）前端页面文件有bug时进行修改后，未清除浏览器缓存，导致虽然改了但还是报错。...]]></description><category></category></item><item><title><![CDATA[算法基础——链表反转]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126193789</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126193789</guid><author>JiaYou_PPZ</author><pubDate>Sat, 06 Aug 2022 13:55:44 +0800</pubDate><description><![CDATA[不管是单链表还是双链表，反转的逻辑步骤都一样，首先保存当前节点的下一个节点的地址值，防止因当前节点指向更改而丢失，然后更改当前节点的指向，单链表只更改next，而双链表还要更改last，最后再调整节点顺序（获取下一个节点地址值），pre在前head在中，last在后的结构，最后循环结束返回pre即最后一个节点地址，即新的头节点。...]]></description><category></category></item><item><title><![CDATA[算法基础练习——二分法]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126024935</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/126024935</guid><author>JiaYou_PPZ</author><pubDate>Wed, 27 Jul 2022 22:59:51 +0800</pubDate><description><![CDATA[1.基本二分查找：
一个有序数组arr[]，使用二分查找其中的num，返回Boolean值。
2.二分查找扩展：
（1）查找某数最左位置
（2）数组局部最小]]></description><category></category></item><item><title><![CDATA[函数f1()等概率返回1~5，要求等概率返回1~7。]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125511191</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125511191</guid><author>JiaYou_PPZ</author><pubDate>Tue, 28 Jun 2022 22:32:38 +0800</pubDate><description><![CDATA[题目：函数f1()等概率返回1~5，要求等概率返回1~7。思路：由函数f1()获取0,1构造函数f2()，三个二进制位再分别调用f2()组成十进制的0~7。0~7再获取0~6的构造函数，再+1即为1~7。


 推广：任意等概率函数，只需改写成0，1生成器，即将生成器通过位运算结合+/-法，生成任意范围等概率函数。例：如3~10，要求改写2~8。思路：首先看奇偶，3~10，共8个数，为偶数，则让3~6返回0,7~10返回1，构建0,1生成器。要求2~8，则生成等概率返回0~6函数再...]]></description><category></category></item><item><title><![CDATA[三种基础排序算法]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125506304</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125506304</guid><author>JiaYou_PPZ</author><pubDate>Tue, 28 Jun 2022 17:11:58 +0800</pubDate><description><![CDATA[1 插值排序，后1位比前1位，或前位比后位。
2 冒泡排序，两两交换，逐渐传递。
3 选择排序，从左到右，选择最小值排序。

3 选择排序，从左到右，选择最小值排序]]></description><category></category></item><item><title><![CDATA[javaWeb查询启用禁用时，查询启用正常，查询禁用返回不正确]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125163751</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125163751</guid><author>JiaYou_PPZ</author><pubDate>Tue, 07 Jun 2022 14:13:05 +0800</pubDate><description><![CDATA[需求：在前端页面的条件查询框点击搜索，后端返回数据库中符合条件的所有数据的总数。整体业务逻辑如下：问题：原查询语句如下，status表示状态，0为禁用，1为启用，以Integer类型储存。


当页面查询时，前端会将条件以json字符串形式发送给后端，后端再将字符串转换为一个brand对象，此时status封装为brand的一个变量，然后再按照查询语句对数据库进行检索。其中嵌入了一个关于状态的if判断。在实际查询中，选择启用时查询结果正确，选择禁用时查询结果为全部数据。解决：经过检查发现问题出在状态if的条]]></description><category></category></item><item><title><![CDATA[element ui中el-switch根据后端传递值进行默认显示]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125118531</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/125118531</guid><author>JiaYou_PPZ</author><pubDate>Sat, 04 Jun 2022 09:02:51 +0800</pubDate><description><![CDATA[需求：修改一个行数据，弹出一个修改框，其中状态（启用/禁用）使用switch控制。后端返回的状态，分别是1和0，其中0表示禁用，1表示启用。
问题：当每次点击修改时，不管后端反馈的状态是1还是0，该行数据的状态开关始终处于关闭状态,。...]]></description><category></category></item><item><title><![CDATA[javaWeb练习——简单的用户登陆逻辑]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124998455</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124998455</guid><author>JiaYou_PPZ</author><pubDate>Fri, 27 May 2022 10:12:48 +0800</pubDate><description><![CDATA[需求：进入登陆页面，用户输入用户名和密码，返回登陆成功或失败。

具体流程图如下：



Servlet类的详细逻辑如下：


//WebServlet路径与表单action提交的路径一致，表单提交的数据交给该servlet程序解析
@WebServlet("/req")
public class requestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, H.]]></description><category></category></item><item><title><![CDATA[javaWeb练习——初认JDBC]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124848991</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124848991</guid><author>JiaYou_PPZ</author><pubDate>Wed, 18 May 2022 19:21:07 +0800</pubDate><description><![CDATA[简单来说，JDBC就是用java语言操作关系型数据库的一套API。

他的使用步骤主要为以下流程：

（0）导入jar包

（1）注册驱动

（2）获取连接

（3）定义SQL语句

（4）获取执行SQL对象

（5）执行SQL

（6）处理返回结果

（7）关闭资源

   需要说明的一点是，注册驱动可以省略，对于sql语句，若是查询语句则使用statement.executeQuery（sql）获取查询结果的对象，然后使用该对象的next（），getXxx方法获取值。当需要防sql注入时，在获取执...]]></description><category></category></item><item><title><![CDATA[javaSE进阶练习——多线程等待唤醒练习]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124709442</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124709442</guid><author>JiaYou_PPZ</author><pubDate>Wed, 11 May 2022 14:51:29 +0800</pubDate><description><![CDATA[经典等待唤醒

需求分析：

   有一个桌子，桌子上有一个蛋糕，当顾客线程先抢到CPU,则先执行顾客线程，上锁，首先看桌子，若有蛋糕顾客去吃，吃完了唤醒厨师线程去抢CPU做蛋糕，自己再继续抢CPU；若没蛋糕则等待，解锁，让厨师运行厨师线程做蛋糕。若厨师先抢到CPU看到桌子，若有蛋糕，厨师等待，解锁，把cpu让给顾客，执行顾客线程；若无蛋糕，厨师做蛋糕，做完蛋糕唤醒顾客线程去抢CPU，自己再继续抢CPU。顾客厨师反复抢CPU，直到达到run结束的条件。
   若唤醒其它线程后，自己又抢到CP...]]></description><category></category></item><item><title><![CDATA[javaSE进阶练习——商场功能的基本实现]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124599615</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124599615</guid><author>JiaYou_PPZ</author><pubDate>Thu, 05 May 2022 22:56:21 +0800</pubDate><description><![CDATA[需求:实现一商城，主要有店铺和商品栏，商品栏中有商品。商品的信息包括商品名、商品的描述、价格、库存、上架时间。

tips：
  1.商品使用自定义类，在设置具体属性值时进行判断抛出自定义异常，减少测试类中代码逻辑判断。
  2.商城使用HashMap，键储存店铺，值储存商品栏，商品栏为单列集合，使用ArraList存储商品信息。
  3.利用正则表达式、捕获异常、等对输入进行校验，使用while+continue循环进行重复判断。
  4.遇到复杂的逻辑不要慌，层层递进，在实现整体逻辑的基...]]></description><category></category></item><item><title><![CDATA[javaSE进阶练习——HashMap遍历]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124555841</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124555841</guid><author>JiaYou_PPZ</author><pubDate>Tue, 03 May 2022 15:27:27 +0800</pubDate><description><![CDATA[1.概述

    Map集合的特点是无序，无索引，不重复（键不重复，对值无要求）。遍历方式主要有三种，分别是：

  （1）通过键找值：使用keySet（）获取Map键的Set集合，然后使用get（），根据键获取值。

  （2）通过键值对遍历：先把Map转为Set集合，Set集合中每个元素都是键值对的实体类型，然后遍历Set集合，提取键与值。

  （3）使用forEach（），形参为Biconsumer的实现类对象。

2.实例

需求：键盘录入“姓名，年龄”，存储到M...]]></description><category></category></item><item><title><![CDATA[javaSE进阶练习——常用单列集合（Collection）练习]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124546174</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124546174</guid><author>JiaYou_PPZ</author><pubDate>Mon, 02 May 2022 20:39:20 +0800</pubDate><description><![CDATA[1.Collection常用集合简介

    单列集合包括list系列和set系列，list系列集合特点是有序、重复、有索引，set系列集合特点是无、不重复、无索引，其中list又分ArrayList和LinkedList，set又分Hashset和TreeSet,Hasheset还分linkedHashSet。
    虽然单列集合有很多，但目前常用的有三种，一般默认使用ArrayList集合，使用HashSet去重，和TreeSet指定排序。arraylist底层为数组，因此根据索...]]></description><category></category></item><item><title><![CDATA[javaSE进阶练习——TreeSet集合，自定义类重写compareTo练习]]></title><link>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124545140</link><guid>https://blog.youkuaiyun.com/JiaYou_PPZ/article/details/124545140</guid><author>JiaYou_PPZ</author><pubDate>Mon, 02 May 2022 19:23:18 +0800</pubDate><description><![CDATA[需求：用TreeSet集合存储3个学生信息，学生信息包括姓名、年龄、语文成绩、数学成绩、和总分，要求按总分从高到低排序，若总分一样按语文排序，如果语文一样按数学排序，如果数学一样按年龄排序，如果年龄一样按姓名默认排序。

详细代码如下：

Student类（重写toString方法和compareTo方法）


public class Student implements Comparable&lt;Student&gt; {
    //    姓名、年龄、语文成绩、数学成绩、和总分
    priva]]></description><category></category></item></channel></rss>