<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_35976676的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_35976676</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_35976676]]></copyright><item><title><![CDATA[Node.js爬虫实战：如何快速获取网站数据？]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130954931</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130954931</guid><author>qq_35976676</author><pubDate>Tue, 30 May 2023 19:09:51 +0800</pubDate><description><![CDATA[爬虫是一种自动化程序，它模拟客户端行为，并访问网站以解析数据和获取有用信息。它们通过模拟浏览器或访问API等方式，访问网站并解析页面，从而收集有关其内容的信息。通过本文我们了解到，爬虫技术在互联网时代的数据获取和信息分析中扮演着重要的角色。不同类型的爬虫有不同的应用场景，但是我们也需要注意爬虫技术的合法性和道德性，遵守相关法律法规和道德规范，保护个人隐私和知识产权。同时，随着爬虫技术的不断发展和应用场景的不断拓展，各大网站的反爬机制也在不断升级，我们需要了解和应对这些反爬机制。]]></description><category></category></item><item><title><![CDATA[《认知觉醒》读后感]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130433509</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130433509</guid><author>qq_35976676</author><pubDate>Sun, 05 Feb 2023 22:40:18 +0800</pubDate><description><![CDATA[机缘巧合之下，读了《认知觉醒》这本书。刚看到这个书名的时候，有一种找到解药的感觉。我一直在想怎么提升认知，也问了几个朋友如何提升认知。所以当我看到这个书名的时候，就迫不及待的看起来了。读了几页之后，发现跟我想的不同，读了这本书并不能让自己的认知有质的飞跃。它是想要告诉我们如何这些陷入焦虑或者对当下迷茫的人一些指引。我并不会全部复述书中的内容，我只想谈谈让我印象深刻的几个点。没有什么微信是一定要立即...]]></description><category></category></item><item><title><![CDATA[ant design 的日历选择组件在safari显示NaN问题的解决方案]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/116530686</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/116530686</guid><author>qq_35976676</author><pubDate>Sat, 08 May 2021 15:51:33 +0800</pubDate><description><![CDATA[问题：如题
现象：
解决方案：这是一个兼容性问题，解决方案可以把时间格式由 ‘-’ 改为 ‘/’，比如 ‘2021-05-06’ 改为 ‘2021/05/06’ 。

]]></description><category></category></item><item><title><![CDATA[react antd RangePicker 时间范围选择，禁止选择今天之后的时间，并且只能选择一个月以内的时间]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/116500480</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/116500480</guid><author>qq_35976676</author><pubDate>Fri, 07 May 2021 19:34:33 +0800</pubDate><description><![CDATA[背景
项目使用 react，antd 开发。
原始需求
有一个日期时间范围选择的需求，具体要求是：

今天以后的时间不能选择
只能选择30天以内的时间

解决方案
引入时间控件
 import { Row, Col, Spin, DatePicker } from 'antd'1
 const { RangePicker } = DatePicker

定义时间格式
const dateFormat = 'YYYY-MM-DD'
const valueDateFormat = `${dateFormat} ]]></description><category></category></item><item><title><![CDATA[HTTP 协议的发展历史]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/113464571</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/113464571</guid><author>qq_35976676</author><pubDate>Sun, 31 Jan 2021 11:58:24 +0800</pubDate><description><![CDATA[昨天学习了 http 的发展历史，今天整理的一个脑图，上传一发：

欢迎批评指正。

]]></description><category></category></item><item><title><![CDATA[nodejs 爬虫的乱码问题归类及解决方案]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/113445551</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/113445551</guid><author>qq_35976676</author><pubDate>Sat, 30 Jan 2021 20:03:03 +0800</pubDate><description><![CDATA[乱码问题分类及解决方案
1 使用 cheerio 解析下载下来的html字符串，碰到中文，如果不解析，可以直接添加参数 { decodeEntities: false }：
例如：
var $ = cheerio.load("&lt;h1&gt;&lt;p&gt;你好&lt;/p&gt;&lt;em&gt;Hello,World!&lt;/em&gt;&lt;/h1&gt;");
var cnt = $('h1').html();//&lt;p&gt;&amp;#x4F60;&amp;#x597D;&lt;]]></description><category></category></item><item><title><![CDATA[JS DOM innerText和textContent的区别]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/113099832</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/113099832</guid><author>qq_35976676</author><pubDate>Sun, 24 Jan 2021 23:21:21 +0800</pubDate><description><![CDATA[今天在复习js基础的时候突然想到了看到了 innerText 和 textContent这两个属性，然后他们获取的内容是一样的，我就想了一下，他俩的区别是啥呢，于是研究了一下，总结如下：

innerText IE6就开始支持，那个时候，Firefox浏览器是不支持这个API的，一直到2016年3月份Firefox 45+才开始支持。
而 textContent 是IE9才支持的

两者获取的内容如果存在块级元素，则表现不同：
比如如下内容：

&lt;p id="dom"&gt;一段文字内容&lt;spa]]></description><category></category></item><item><title><![CDATA[vue项目中，element-ui select 的下滑加载更多]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/108144988</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/108144988</guid><author>qq_35976676</author><pubDate>Fri, 21 Aug 2020 12:54:36 +0800</pubDate><description><![CDATA[需求背景：我司的一个需求，在一个下拉框要显示艺术家，但是艺术家太多，如果一下子请求回来，接口返回很慢，渲染也很慢，所以想到的解决方案是分页请求，当鼠标在select 的option中滑动超过option的高度，就会触发一个事件，然后调用自己的函数，代码如下：
1 首先给 el-select 绑定一个事件，这个事件 element 是不支持的，所以要自己定义一个属性：
directives: {
    'el-select-loadmore': {
      inserted(el, binding) {]]></description><category></category></item><item><title><![CDATA[nodejs fs,判断路径是否存在，如果不存在则创建该路径]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107909492</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107909492</guid><author>qq_35976676</author><pubDate>Mon, 10 Aug 2020 13:02:14 +0800</pubDate><description><![CDATA[fs 是 nodejs 的核心模块，一般我们对文件的增删改查都可以做到，今天我要码的是，利用 fs 模块创建在我们指定位置的文件

引入fs：fs 是 nodejs 的核心模块，引入就可以用，不用 npm 安装

import fs from 'fs'


开始写核心代码

/**
   * 路径是否存在，不存在则创建
   * @param {string} dir 路径
   */
  function async dirExists(dir) {
	let isExists = await getSt]]></description><category></category></item><item><title><![CDATA[js 的 forEach 函数如何跳出循环？]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107768044</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107768044</guid><author>qq_35976676</author><pubDate>Mon, 03 Aug 2020 16:54:23 +0800</pubDate><description><![CDATA[答案：无法跳出循环。
但是我们可以寻找代替的方法。forEach 会遍历数组中的所有元素，即使碰到了你要的，也会继续往后走，所以我们可以使用 some() 方法或者 every() 方法代替。
some: 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。some 方法会在函数内部返回 true 是跳出循环。

当item=2是，符合if条件，下面返回的true，此时跳出循环。
every：方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布]]></description><category></category></item><item><title><![CDATA[vue.js 中，背景图的链接是变量，如何使用style显示]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107474672</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107474672</guid><author>qq_35976676</author><pubDate>Mon, 20 Jul 2020 21:41:32 +0800</pubDate><description><![CDATA[vue.js 中，添加动态背景图的方法， 直接上代码
&lt;template&gt;
  &lt;div :style="{backgroundImage: url(`${props.url}`)}"&gt;&lt;/div&gt;
&lt;/template&gt;

props.url 我这里是一个父组件传下来的组件，可以使用data里面定义的任何变量。

...]]></description><category></category></item><item><title><![CDATA[带有防盗链的图片，在显示时如何不显示默认图]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107441933</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107441933</guid><author>qq_35976676</author><pubDate>Sun, 19 Jul 2020 11:06:46 +0800</pubDate><description><![CDATA[在写本周需求的时候，引入了一张别的网站的图片，放在img标签的src属性上，但是显示的都是别人家的默认图，充满了疑惑的我查了一下。
原来是这个图片的网站设置的防盗链。
防盗链的原理：在 http 协议中，如果从一个页面跳到另一个页面，header 中会带一个 Referer。图片服务器通过检测 Referer 是否来自规定域名，来进行防盗链。
因此，如果不发送 Referer，也就是没有来源，图片官网那么就认为是浏览器直接访问的，就会正常显示图片。
本次任务中，我的解决方案就是给img添加一个属性 refe]]></description><category></category></item><item><title><![CDATA[使用 nodejs fs 读取本地图片]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107192726</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107192726</guid><author>qq_35976676</author><pubDate>Tue, 07 Jul 2020 22:55:45 +0800</pubDate><description><![CDATA[今天写需求遇到将本地md文件转化为 html，并且里面的图片也要上传到公司服务器，这就涉及到读取本地的图片，上代码
import fs' from 'fs'
// imagePath 是图片在本地的路径  如 'D:\img\1.jpg'
let imageData = fs.readFileSync(imagePath)
// 转成 base64
let imageDataToBase64 = imageData.toString('base64')


...]]></description><category></category></item><item><title><![CDATA[数据库使用 正则方法，以及数据库跨表查询方法]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/107007871</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/107007871</guid><author>qq_35976676</author><pubDate>Sun, 28 Jun 2020 21:29:16 +0800</pubDate><description><![CDATA[今天做项目的时候，遇到一个数据库正则查找数据和跨表查找的需求，故查找了一下这两个知识点
1 数据库使用正则
我的需求是，在一张表中，查找 code 中带有字母的数据，这里使用到了正则方法，具体就是
select * from table_name where code REGEXP '[a-zA-Z]'

REGEXP 后面可以接任意正则表达式
2 跨表查询
下面我的需求就涉及到，上面那个 code 对应的数据在令外一张表中，有相同 id 的数据
这里可以拆开来想
1 在另外一张表中查找 id = 某值的数]]></description><category></category></item><item><title><![CDATA[前端 cookie，小饼干]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/106892180</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/106892180</guid><author>qq_35976676</author><pubDate>Sat, 27 Jun 2020 13:21:06 +0800</pubDate><description><![CDATA[cookie 是前端中一个小点，还是比较重要的。
什么是cookie
cookie是保存在你的计算机中的小型文本文件中的数据。web 服务器将网页发送到浏览器之后，连接将关闭，浏览器也将忘记用户信息。cookie 就是为了解决这个问题。
当你再次打开浏览器时，浏览器会从本地文件读取 cookie，这样浏览器就会认识你，比如一些网站的自动登录，使用的是这个技术。
获取cookie
let cookies = document.cookie
设置cookie
document.cookie = newCooki]]></description><category></category></item><item><title><![CDATA[html tag noscript]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/106935534</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/106935534</guid><author>qq_35976676</author><pubDate>Wed, 24 Jun 2020 00:41:19 +0800</pubDate><description><![CDATA[noscript 指网页禁止脚本的时候，显示的代码，比如：
&lt;p&gt;nice to meet you!&lt;/p&gt;
&lt;script&gt;
document.write("Hello World!")
&lt;/script&gt;
&lt;noscript&gt;Your browser does not support JavaScript!&lt;/noscript&gt;

正常是时候上面的代码会显示：
nice to meet you!
Hello World!
当网页禁止]]></description><category></category></item><item><title><![CDATA[读书 | 遗憾而又惊喜！三十多岁才开始自己的真正的人生。]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130431446</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130431446</guid><author>qq_35976676</author><pubDate>Mon, 13 May 2019 23:50:44 +0800</pubDate><description><![CDATA[你认为自己是什么样的人，就将会成为什么样的人。--安东·契诃夫很久之前读过《傻瓜维特》，讲述的是维特小时候在检测IQ的时候，得到了错误的结果，从而被周围的人认为是傻瓜。无论他做什么，都会有人嘲笑他，这让他也觉得自己是个傻瓜，是个结巴。很奇怪，当他自己是这么想的，他的行为好像也跟他配合，比如笨手笨脚，比如结巴。他的小伙伴罗拉也是被父母说丑，因此心中充满了自卑，但是事实确实罗拉是一个十分美丽的女人。
...]]></description><category></category></item><item><title><![CDATA[周六的正确打开方式]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130431444</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130431444</guid><author>qq_35976676</author><pubDate>Sat, 05 Jan 2019 20:54:33 +0800</pubDate><description><![CDATA[来北京之后最喜欢的时光就是一个人的周末，可以在寝室里面发呆，可以看书，可以收拾屋子，可以健身，可以做自己喜欢的饭。    所以这个周六我自己在寝室，然后我的安排是：早上八点起来给自己准备一份早餐，今天的早餐是燕麦牛奶，鸡蛋炒黄瓜碎，简单且营养。



早餐
然后我休息了一会会，去了健身房，自己走了一会椭圆仪，跟教练练了一个小时，很累，很满足。随...]]></description><category></category></item><item><title><![CDATA[一周一度星期五]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130434651</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130434651</guid><author>qq_35976676</author><pubDate>Fri, 04 Jan 2019 10:31:24 +0800</pubDate><description><![CDATA[这周过的格外舒服，歇三天上三天这两天。刚觉得上班疲惫，就放假啦。这个周末打算宅一天，跟朋友约一天，甚美。    昨天跟教练约了上课，教练教了我倒立，这就玩开了，开始不敢上，试了好几次，都是刚伸腿就下来了，后来敢上了，还非让教练给我拍个抖音记录(显摆)一下，哈哈哈。另外就是，昨天走了半个小时椭圆仪就觉得出了很多汗，比以前爱出汗了。可能是最近练的多了吧。    昨天在想...]]></description><category></category></item><item><title><![CDATA[2018，我的精彩的一年]]></title><link>https://blog.youkuaiyun.com/qq_35976676/article/details/130434652</link><guid>https://blog.youkuaiyun.com/qq_35976676/article/details/130434652</guid><author>qq_35976676</author><pubDate>Sun, 30 Dec 2018 20:13:20 +0800</pubDate><description><![CDATA[又到一年年末了，时间总是那么快。这一年，尽管发生了很多事情，但是还是感觉分分钟就过去了。写这篇文章，也是为了纪念一下我的2018，迎接我的2019。这一年中，很多转折的发生，不在预料之中，不过发展是朝着好的方向。1 买了自己的房子。   房子虽然不大，但是我很喜欢，而且我跟妈妈两个人住很好。算是成年以来自己做的第一个重大决定，我的一篇文章写了我买房子的过程，也算是惊心动魄了...]]></description><category></category></item></channel></rss>