<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xdn541的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xdn541</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xdn541]]></copyright><item><title><![CDATA[阿里231滑块参数n逆向实战：从环境监测到轨迹模拟最全的完整解析js]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/162913109</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/162913109</guid><author>xdn541</author><pubDate>Wed, 15 Jul 2026 21:08:41 +0800</pubDate><description><![CDATA[阿里滑块验证逆向实战：环境监测与轨迹模拟完整解析 摘要：本文详细解析了阿里231滑块验证的逆向过程，包含环境参数获取和轨迹模拟两大核心环节。通过Python代码示例展示了请求发送流程，重点分析了滑块验证的token获取机制。实战演示了如何绕过阿里移动端(minisite)的滑块验证系统，提供从基础请求到完整参数生成的全套解决方案。文章附带完整源码和封装好的HTTP接口，适用于需要处理阿里滑块验证的开发者。]]></description><category></category></item><item><title><![CDATA[aws serverless redis elasticache lettuce first get operation takes more than 10s to response note]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/144539324</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/144539324</guid><author>xdn541</author><pubDate>Tue, 17 Dec 2024 16:49:34 +0800</pubDate><description><![CDATA[使用aws serverless cahe 首次执行get操作高延迟]]></description><category></category></item><item><title><![CDATA[python爬取京东商品评论稳1W+]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/112440740</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/112440740</guid><author>xdn541</author><pubDate>Sun, 10 Jan 2021 20:09:10 +0800</pubDate><description><![CDATA[python爬取京东商品评论稳1W+如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入


链接: link.
图片: 
带尺寸的图片: 
居中的图片: 
居中并且带尺寸的图片: 
当然，我们为了让用户更加便捷，我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面，选择一款你喜欢的代码片高亮样]]></description><category></category></item><item><title><![CDATA[python发邮件]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/109199422</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/109199422</guid><author>xdn541</author><pubDate>Wed, 21 Oct 2020 13:43:11 +0800</pubDate><description><![CDATA[# coding=utf-8
import smtplib
from email.mime.text import MIMEText

msg_from = '2014008900@qq.com'  # 发送方邮箱
passwd = 'paxanbynbygxcfii'  # 填入发送方邮箱的授权码 staabiturbadbecf qsummivipxgubfic
msg_to = '599153929@qq.com'  # 收件人邮箱

subject = "python邮件测试"  # 主题     ]]></description><category></category></item><item><title><![CDATA[java手写HashMap]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/104185177</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/104185177</guid><author>xdn541</author><pubDate>Wed, 05 Feb 2020 17:03:45 +0800</pubDate><description><![CDATA[手写HashMap

JDK1.7 的HashMap  是基于，数组和单向链表实现。大致原理是：当put的元素的时候，根据key的值和数组的大小，获取该元素在数组中存入的位置，如果当前位置是空，直接添加一个节点。反之，遍历链表进行添加或者修改。HashMap的扩容机制是，当容器内存储的元素个数大于，负载因子和数组的大小的乘积的时候，进行扩容，默认是2倍。并且需要重新，计算数组中的元素的位置。

p...]]></description><category></category></item><item><title><![CDATA[java手写LinkedList]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/104185150</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/104185150</guid><author>xdn541</author><pubDate>Wed, 05 Feb 2020 17:01:57 +0800</pubDate><description><![CDATA[手写LinkedList

LinkedList 的底层实现是一个双向链表，内部维护一个，start节点和一个end节点。start节点是用来查询，通过，start.next.next…获取。end节点是用来添加，每次新增元素直接新建节点放到end的后面，使其成为新的end。

package com.work.one.listUtils.impl;

import com.work.one.li...]]></description><category></category></item><item><title><![CDATA[Java手写ArrayList]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/104184578</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/104184578</guid><author>xdn541</author><pubDate>Wed, 05 Feb 2020 17:00:36 +0800</pubDate><description><![CDATA[手写ArrayList

ArrayList 是基于数组的实现，底层主要的难点是，数组移动，实现数组的删除或者添加，核心方法是，System.arraycopy(elementData, index, elementData, index + 1, size - index);
代码实现，首先定义公共的接口：

public interface MyList&lt;E&gt; {

       ...]]></description><category></category></item><item><title><![CDATA[主线程等待其他线程处理完毕，   获取其他线程的结果通知，类似于 Future 的用法，基于wait 和 notify的用法]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/103928205</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/103928205</guid><author>xdn541</author><pubDate>Fri, 10 Jan 2020 17:29:03 +0800</pubDate><description><![CDATA[代码实现如下：
package blockque;


/**
 *
 * 主线程等待其他线程处理完毕，
 * 获取其他线程的结果通知，
 * 类似于 Future 的用法
 * 
 */
public class TestWait {

    public static void main(String[] args) {
        RequestData requestData = n...]]></description><category></category></item><item><title><![CDATA[java并发编程专题]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/103910885</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/103910885</guid><author>xdn541</author><pubDate>Thu, 09 Jan 2020 16:30:24 +0800</pubDate><description><![CDATA[线程池原理分析
并发包
(计数器)CountDownLatch
CountDownLatch 类位于java.util.concurrent包下，利用它可以实现类似计数器的功能。比如有一个任务A，它要等待其他4个任务执行完毕之后才能执行，此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是通过一个计数器来实现的，计数器的初始值为线程的数量。每当一个线程完成了自...]]></description><category></category></item><item><title><![CDATA[Java生产者和消费者队列]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/103907321</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/103907321</guid><author>xdn541</author><pubDate>Thu, 09 Jan 2020 14:28:57 +0800</pubDate><description><![CDATA[package blockque;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;

public class Test {

    public static void main(S...]]></description><category></category></item><item><title><![CDATA[maven添加依赖]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/103034021</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/103034021</guid><author>xdn541</author><pubDate>Tue, 12 Nov 2019 17:17:18 +0800</pubDate><description><![CDATA[1、提取需要的jar文件，并cmd 转到maven  bin目录
假设要添加的jar包是jbarcode-0.2.8.jar，
可执行如下：
2、mvn install:install-file -Dfile=F:\jbarcode.jar -DgroupId=com.mycompany.myproduct -DartifactId=abc  -Dversion=1.0 -Dpackaging=j...]]></description><category></category></item><item><title><![CDATA[python连接azure blob]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/103007743</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/103007743</guid><author>xdn541</author><pubDate>Mon, 11 Nov 2019 11:45:44 +0800</pubDate><description><![CDATA[pip install azure-storage --upgrade
注意后面加上 --upgrade，为撒？？？

]]></description><category></category></item><item><title><![CDATA[python多线程生成excel一些感悟吧...]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/102888266</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/102888266</guid><author>xdn541</author><pubDate>Sun, 03 Nov 2019 22:39:45 +0800</pubDate><description><![CDATA[最近，做了很多个报表，一开始并没有考虑到效率的问题，只是实现了excel的导出，后来慢慢做出现好多问题。
1、每一个excel 的sheet很多，大概四五十个，跑完一个excel得花四十多分钟，甚至一个小时。。。有时候甚至线程直接卡死了不动了。可能是io的交互太长了，也不知道撒原因。
2、每一类型的excel至少也得需要出30多个吧，考虑到进程池用多进程去跑，但是发现多进程消耗太大，机器也就4核的...]]></description><category></category></item><item><title><![CDATA[python进程池的简单使用]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/102553311</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/102553311</guid><author>xdn541</author><pubDate>Mon, 14 Oct 2019 18:02:07 +0800</pubDate><description><![CDATA[进程池存在，multiprocessing模块中.
multiprocessing.Pool(processes=4)指定创建进程的个数。
pool.apply_async 异步执行任务.
callback的参数是，任务执行的返回值。
error_callback，的参数是执行的错误信息。

import multiprocessing
import time


def task_1(name...]]></description><category></category></item><item><title><![CDATA[matplotlib矩形图]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/102550860</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/102550860</guid><author>xdn541</author><pubDate>Mon, 14 Oct 2019 16:13:39 +0800</pubDate><description><![CDATA[效果如图：

import matplotlib.pyplot as plt
import numpy as np
import os
import random
Fixing random state for reproducibility 循环使用
plt.rcdefaults()
创建一个图形和一个子图
fig, ax = plt.subplots()
Example data
people...]]></description><category></category></item><item><title><![CDATA[pandas + openpyxl 生成excel，并设置样式]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/102237489</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/102237489</guid><author>xdn541</author><pubDate>Sun, 06 Oct 2019 19:55:37 +0800</pubDate><description><![CDATA[近期，利用pandas+openpyxl，做了一个关于报表的项目，写个博客，就当作笔记记录一下吧。
一、举个例子，如下图：

需要实现，如上的报表，稍作分析下，我们可以从以下几个方面入手：
1、生成一个，shape是，（1２，２）的pandas对象，列索引是多重索引，其他三列是计算列，以后再加。
2、axis=1 方向，添加　AA-BB 就是 AA列减去BB列，其他类似。
3、axis=0 方向，...]]></description><category></category></item><item><title><![CDATA[添加本地目录至git仓库]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/98942729</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/98942729</guid><author>xdn541</author><pubDate>Fri, 09 Aug 2019 10:23:11 +0800</pubDate><description><![CDATA[1、cd projectName
probjectName是项目文件夹的名字, 先进入项目文件夹
2、git init
通过命令把这个目录变成git可以管理的仓库
3、git add .
把文件添加到版本库中，使用命令 git add .添加到暂存区里面去
不要忘记后面的小数点“.”，意为添加文件夹下的所有文件
4、git commit -m ‘first commit’
用命令告诉Git，把文件...]]></description><category></category></item><item><title><![CDATA[docker常用命令汇总]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/96323900</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/96323900</guid><author>xdn541</author><pubDate>Wed, 17 Jul 2019 16:40:26 +0800</pubDate><description><![CDATA[前言：因不是专业的运维人员，docker命令用的不多，隔一段时间才会用到，所以老是喜欢忘记，写个博客，当作笔记，连载，哈哈~
docker ps  显示当前正在运行的docker容器
docker ps -a 显示所有的docker容器，包括没有运行的
docker images 显示所有的镜像文件
docker rmi imageId  根据镜像id删除镜像
docker save -o  自定...]]></description><category></category></item><item><title><![CDATA[centos在虚拟环境中shell定时执行python脚本]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/96307910</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/96307910</guid><author>xdn541</author><pubDate>Wed, 17 Jul 2019 15:05:23 +0800</pubDate><description><![CDATA[1、创建虚拟环境
virtualenv -p  /usr/bin/python3  /usr/soft/testmypythonenv (-p是指定python的版本)
2、激活虚拟环境
source  /usr/soft/testmypythonenv/bin/activate
3、直接进入到虚拟环境所在的目录：
cd /usr/soft/testmypythonenv
创建test.py，输入...]]></description><category></category></item><item><title><![CDATA[flask项目搭建和部署]]></title><link>https://blog.youkuaiyun.com/xdn541/article/details/94433582</link><guid>https://blog.youkuaiyun.com/xdn541/article/details/94433582</guid><author>xdn541</author><pubDate>Tue, 02 Jul 2019 10:39:57 +0800</pubDate><description><![CDATA[前言：不要卸载python2，有些软件依赖python2，命令用python3
1、打开终端
首先创建安装目录，
sudo mkdir /usr/local/python3
2、然后下载安装包，解压，并且进入
wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xzvf ...]]></description><category></category></item></channel></rss>