<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[enjoy_code_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/enjoy_code_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; enjoy_code_]]></copyright><item><title><![CDATA[python 简单模拟网站访问及数据解析]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/115109803</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/115109803</guid><author>enjoy_code_</author><pubDate>Tue, 23 Mar 2021 09:53:40 +0800</pubDate><description><![CDATA[解析网页技术




模块名
技术
特点




re模块
正则表达式
* 基于文本的特征来匹配或查找指定数据    *可以处理任何格式的字符串文档，类似于模糊匹配的效果


lxml模块beautifulsoup4
XPath和Beautiful Soup
 基于HTML/XML文档的层次结构来确定达到指定节点的路径   更适合处理层级比较明显的数据


json模块
JSONPath
用于JSON文档的数据解析


解析工具的性能比较




抓取工具
速度
使用难度
安装难度




re
最快
]]></description><category></category></item><item><title><![CDATA[python简单模拟网页访问]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/115109117</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/115109117</guid><author>enjoy_code_</author><pubDate>Tue, 23 Mar 2021 09:22:47 +0800</pubDate><description><![CDATA[浏览网页的过程可分为以下四个步骤：

浏览器通过DNS服务器查找域名对应的IP地址；
向IP地址对应的Web服务器发送请求；
Web服务器响应请求，返回HTML页面；
浏览器解析HTML文本，并显示页面







实践内容：
1.使用urllib模块
import urllib.request as ur
url="https://www.baidu.cn/"  #访问目标网页
info = ur.urlopen(url)       #return 得到一个response的对象
print(info]]></description><category></category></item><item><title><![CDATA[html(11)-表单的初级验证]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112758984</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112758984</guid><author>enjoy_code_</author><pubDate>Sun, 17 Jan 2021 22:26:19 +0800</pubDate><description><![CDATA[纯html表单验证上面有三种简单应用：

placeholder 提示信息
required  非空判断
pattern 正则表达式

placeholder
&lt;form action="first.html" method="get"&gt;
    &lt;p&gt;账号：&lt;input type="text" name="username" placeholder="请输入用户名"/&gt;&lt;/p&gt;
    &lt;p&gt;密码：&lt;input type="password]]></description><category></category></item><item><title><![CDATA[html(10)-初识表单]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112726801</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112726801</guid><author>enjoy_code_</author><pubDate>Sun, 17 Jan 2021 21:59:09 +0800</pubDate><description><![CDATA[在html中，表单一直是很重要的结构。

下面提供一个自定义的表单例子：
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;表单&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action="first.html" method="post"&gt;
    &lt;p&gt;账号：&lt;]]></description><category></category></item><item><title><![CDATA[html(9)-iframe内联框架]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112725439</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112725439</guid><author>enjoy_code_</author><pubDate>Sat, 16 Jan 2021 23:01:05 +0800</pubDate><description><![CDATA[通过使用框架，你可以在同一个浏览器窗口中显示不止一个页面。
比如用下面这行代码，可以使得页面中嵌入显示百度搜索页面：
&lt;iframe src="//www.baidu.com"  height="1000px" width="800px"&gt;&lt;/iframe&gt;

注意：


src是要嵌入的资源地址，如果是互联网上的资源，比如百度搜索页面，记得在开头增添//表示这是公网资源。
height和width见名知义，自定义这个嵌入窗口的大小。



下面是一些进阶操作：
&lt;a&gt;标]]></description><category></category></item><item><title><![CDATA[html(8)-视频和音频标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112724570</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112724570</guid><author>enjoy_code_</author><pubDate>Sat, 16 Jan 2021 21:10:04 +0800</pubDate><description><![CDATA[例如，我们在bilibili上面点击可以播放的视频或者音频，都是可以通过这个标签初步把结构展现出来。
先在resource目录下创建音频和视频的存放路径：

video目录下存放你的视频文件
audio目录下存放你的音频文件
首先来学习视频标签，&lt;video&gt;
&lt;video src="../resources/video/1609313883.mp4"&gt;&lt;/video&gt;

这样是最简单的写法，但是这时候浏览器只会出现视频的封面，用户会觉得这就是张图片，而不是视频页。
这时]]></description><category></category></item><item><title><![CDATA[html(7)-表格标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112644909</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112644909</guid><author>enjoy_code_</author><pubDate>Sat, 16 Jan 2021 17:19:58 +0800</pubDate><description><![CDATA[表格标签&lt;table&gt;
里面有子标签：
行标签：&lt;tr&gt;
列标签：&lt;td&gt;
下面来一个2x3的表格

下面的border如果不写的话，默认是很不明显的蓝色细线分隔开来。一般会用上border这个属性。
&lt;table border="1px"&gt;
    &lt;tr&gt;
        &lt;td&gt;1-1&lt;/td&gt;
        &lt;td&gt;1-2&lt;/td&gt;
        &lt;td&gt;1-3&lt;/td.]]></description><category></category></item><item><title><![CDATA[html(6)-列表标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112644832</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112644832</guid><author>enjoy_code_</author><pubDate>Thu, 14 Jan 2021 23:13:54 +0800</pubDate><description><![CDATA[有序列表
&lt;ol&gt;
    &lt;li&gt;java&lt;/li&gt;
    &lt;li&gt;python&lt;/li&gt;
    &lt;li&gt;c++&lt;/li&gt;
    &lt;li&gt;c&lt;/li&gt;
&lt;/ol&gt;


无序列表
&lt;ul&gt;
    &lt;li&gt;java&lt;/li&gt;
    &lt;li&gt;python&lt;/li&gt;
    &lt;li&gt;c++&lt;/li&gt;
 ]]></description><category></category></item><item><title><![CDATA[html(5)-链接标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112592706</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112592706</guid><author>enjoy_code_</author><pubDate>Wed, 13 Jan 2021 22:03:34 +0800</pubDate><description><![CDATA[页面链接：
href是必填的
tarfet：
_blank   :表示在新标签页打开
_self     ：表示在自己的网页中打开
链接标签支持
文本超链接和图片超链接

通过嵌套使用标签实现图片超链接：

锚链接：
步骤：
1，需要一个锚标记
2，使用#加上锚标记即可跳转

这里注意，不一定要是&lt;a&gt;标签才能制作锚标记，其他能设置name属性的标签均可。类如input,button
进阶版锚链接：

在别的html里面设置好锚标记后，使用url+#+锚标记就能去到其他页面的指定位置了。
功能.]]></description><category></category></item><item><title><![CDATA[html(4)-图片标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112591151</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112591151</guid><author>enjoy_code_</author><pubDate>Wed, 13 Jan 2021 21:16:32 +0800</pubDate><description><![CDATA[标签支持jpg，gif，png，bmp等格式的文件类型

src:图像地址
alt:图像的替代文字
title：鼠标悬停提示文字
width:宽
height：高
前两个是必填项

在项目路径下创建   /resources/image   的文件路径来存放图片，
推荐使用相对路径，方便移植


...]]></description><category></category></item><item><title><![CDATA[html(3)-网页的基本标签]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112589227</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112589227</guid><author>enjoy_code_</author><pubDate>Wed, 13 Jan 2021 20:58:25 +0800</pubDate><description><![CDATA[网页基本标签
1. 标题标签
一级标签
二级标签
...
六级级标签
2. 段落标签

快捷键:输入p后敲击tab键
3. 换行标签

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210113204206844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Vuam95X2NvZGVf,size_16,co]]></description><category></category></item><item><title><![CDATA[html(2)-网页基本信息]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112580235</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112580235</guid><author>enjoy_code_</author><pubDate>Wed, 13 Jan 2021 20:27:03 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;hello&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
你好,hello world
&lt;/body&gt;
&lt;/html&gt;

DOCTYPE声明
告诉浏览器，我们要使用什么规范或标准
是默认的，删掉也没事，默认使用html超文本语言规范
标]]></description><category></category></item><item><title><![CDATA[html（1）-概念]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/112578103</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/112578103</guid><author>enjoy_code_</author><pubDate>Wed, 13 Jan 2021 18:03:16 +0800</pubDate><description><![CDATA[学一个东西都是what ——why—— how这种认知的顺序开始理解新事物或者新概念。
what 什么是HTML？
hyper text markup language(超文本标记语言)。
超文本包括文字，音频，视频，图片，动画等，在一个网页上我们看到的所有元素都是由超文本构成的。

都是由下面这种语言写成的：

why 我们使用html呢？

现在市场上最流行的前端是html5+css3的应用，所以学习html对一个程序员来说是相当重要的。
how 怎么使用？
先在idea新建一个java项目：


新建]]></description><category></category></item><item><title><![CDATA[intellij idea 的全局搜索快捷键方法]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/111131678</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/111131678</guid><author>enjoy_code_</author><pubDate>Sun, 13 Dec 2020 16:57:35 +0800</pubDate><description><![CDATA[1. Ctrl+F/Ctrl+Shift+F按照文本的内容查找
相当于eclipse的ctrl+H，速度优势更加明显。其中Ctrl+F是在本页查找，Ctrl+Shift+F是全局查找。
2.Shift+Shift搜索任何东西（不包括内容）
shift+shift非常强大，可搜索类、资源、配置项、方法等，还能搜索路径。其中搜索路径非常实用，例如你写了一个功能叫hello，在java，js，css，jsp中都有hello的文件夹，那我们可以搜索"hello/"找到路径中包含hello的文件夹。
3.Ctrl+H]]></description><category></category></item><item><title><![CDATA[我的第一个vue程序（vs code）]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/111088932</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/111088932</guid><author>enjoy_code_</author><pubDate>Sun, 13 Dec 2020 10:43:16 +0800</pubDate><description><![CDATA[前情提要:
首先要在vs code上下载一个插件：live server。
方便我们后续编译。

然后在磁盘上新建一个文件夹，随便名称即可。
用vs code打开该文件夹：

我的文件夹是vue，在该目录下创建一个html模板：

html模板粘贴这个即可：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset="utf-8" /&gt;
    &lt;title&gt;我的第一个vue&lt;/title&gt;
&lt]]></description><category></category></item><item><title><![CDATA[IDEA运行SpringBoot报错：Failed to load property source from location ‘classpath:/application.yml‘]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/111083711</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/111083711</guid><author>enjoy_code_</author><pubDate>Sat, 12 Dec 2020 19:21:17 +0800</pubDate><description><![CDATA[今天打开idea，运行springBoot项目，报错：

17:46:51.763 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed


java.lang.IllegalStateException: Failed to load property source from location ‘classpath:/application-core.yml’


从报错信息来看，]]></description><category></category></item><item><title><![CDATA[最少钱币数（动态规划）]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/109670622</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/109670622</guid><author>enjoy_code_</author><pubDate>Fri, 13 Nov 2020 11:05:47 +0800</pubDate><description><![CDATA[最少钱币数问题也可以看作多重背包问题。

此问题递推公式（也可以叫做动态转移方程）：（注:money[i]表示可以使用的纸币的面额组成的数组，dp[m]表示要凑m元至少需要多少张纸币。）

dp[m] = min( dp[ m-money[i] ]+1 , dp[m] )

我们先了解一下DP（Dynamic Programing）的基本原理：首先，找到某个状态的最优解，然后在它的帮助下，找到下一个状态的最优解。不明白这个概念没关系，我们以下面的例子为例来分析一下——如果我们有4种面值分别为1元，3元，5元]]></description><category></category></item><item><title><![CDATA[1025. 除数博弈]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/109527578</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/109527578</guid><author>enjoy_code_</author><pubDate>Fri, 06 Nov 2020 11:05:31 +0800</pubDate><description><![CDATA[解题思路：
如果我们想要知道当数字N时爱丽丝赢，就要看N-x时的情况，当N-x爱丽丝赢时，则N时爱丽丝输（相当于N时爱丽丝选X，由于N-x是鲍勃先手选所以必赢），反之，当N-x时爱丽丝输，则N时爱丽丝必赢。（因为鲍勃，爱丽丝都是最佳状态）
由于我们知道2爱丽丝赢，3爱丽丝输，则我们就可以由2.3推N-x,N,即状态转移方程：(初始化dp数组为false)
if(N % x == 0 &amp;&amp; dp[N-x] == false){
	dp[N] = true;
	break;//(由于鲍勃，爱..]]></description><category></category></item><item><title><![CDATA[面试题 17.16. 按摩师 (动态规划easy)]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/109526655</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/109526655</guid><author>enjoy_code_</author><pubDate>Fri, 06 Nov 2020 10:41:57 +0800</pubDate><description><![CDATA[一个有名的按摩师会收到源源不断的预约请求，每个预约都可以选择接或不接。在每次预约服务之间要有休息时间，因此她不能接受相邻的预约。给定一个预约请求序列，替按摩师找到最优的预约集合（总预约时间最长），返回总的分钟数。

class Solution {
public:
    int massage(vector&lt;int&gt;&amp; nums) {
    	//leetcode老是出这种边界情况，一定要注意。
        if(nums.size()==0){
            retu]]></description><category></category></item><item><title><![CDATA[1002. 查找常用字符]]></title><link>https://blog.youkuaiyun.com/enjoy_code_/article/details/109066403</link><guid>https://blog.youkuaiyun.com/enjoy_code_/article/details/109066403</guid><author>enjoy_code_</author><pubDate>Wed, 14 Oct 2020 10:19:10 +0800</pubDate><description><![CDATA[给定仅有小写字母组成的字符串数组 A，返回列表中的每个字符串中都显示的全部字符（包括重复字符）组成的列表。例如，如果一个字符在每个字符串中出现 3 次，但不是 4 次，则需要在最终答案中包含该字符 3 次。
你可以按任意顺序返回答案。
示例 1：

输入：[“bella”,“label”,“roller”]
输出：[“e”,“l”,“l”]

示例 2：

输入：[“cool”,“lock”,“cook”]
输出：[“c”,“o”]

提示：


1 &lt;= A.length &lt;= 100
1 &]]></description><category></category></item></channel></rss>