自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (22)
  • 收藏
  • 关注

原创 记录excel表生成一列按七天一个周期的方法

使用excel生成每七天一个周期的列。

2024-07-06 10:43:07 323

原创 使用python下载图片且批量将图片插入word文档

最近有一个小的功能实现,从小某书上下载指定帖子的图片们,然后批量插入到word文档中,便于打印。读取这个json文件,获取title和image_list。1、首先获取图片们的链接img_urls。2、批量下载图片们,上代码。二、插入word文档。

2024-06-23 07:25:49 247

原创 使用python将多个mp3或者wma合并成一个mp3

来源:最近想听评书,从网上下载了些,但是是001.mp3,002.mp3,003.mp3。我买了一个收音机,放tf卡的,需要把这些mp3拷贝到卡上,然后放到收音机收听。问题是,播放的时候,它不按001,002,003这样的顺序,于是,我想到先在电脑上,把分别的mp3,按照顺序先合并成一个mp3,然后拷贝到卡上。虽然上述代码可以将多个mp3或者wma合并,但是最好也不要一次合并太多,我一般20个合并成一个,贪多容易出错。任务:将一个文件夹内的多个mp3或者wma合并成一个mp3。二、多个wma合并成mp3。

2024-05-27 18:00:59 328

原创 在vps的centos系统中用Python和青龙检测网页更新

而是采用列表对比的方法,即上次的情况存到列表pre_list中,一分钟后,将本次的情况存到列表now_list中,然后对比两个列表,如果now_list中有,但pre_list无,即表示有了新帖子。编写一个程序B.py,使用青龙半小时运行一次B.py,B.py的作用是用于查看程序A.py是否处于运行中,如果A.py在运行,就什么都不做,如果A.py终止了,则启动A.py。任务:用python代码,监控一个网站页面是否有更新(新帖子),若有,则提醒(发布到wordpress或者发送到微信)。

2024-05-26 19:23:29 430

原创 使用python将一段文本写入一个txt文件中且先格式化文件名

任务:要将这段文本,存放到一个txt文件中,文件名为当天的日期加上“标题”内容。因为“标题”内可能有/<>之类的,还需要格式化一下。已经将上述功能都写成了函数,直接拿来就能用。有一段文本内容,有“标题”和“内容”组成。

2024-05-25 21:39:22 280

原创 使用selenium和undetected_chromedriver报错urllib.error.HTTPError: HTTP Error 404: Not Found的一劳永逸解决办法

有时使用selenium和seleniumbase访问部分网站的时候,需要使用代理。主要问题就是undetected_chromedriver和chrome浏览器的适配问题,下面这篇文章说的一针见血,就是undetected_chromedriver不会自动更新,导致今天能用,可能明天就报错了。使用seleniumbase可以很好的解决这个问题,它可以每次自动适配chrome。如上以后,再也不用担心使用uc和chrome适配的问题了。我的环境:win10,python3.8.10。安装完毕后,查看一下。

2024-05-24 18:01:59 1048

原创 记录centos中操作(查找、结束、批量)进程以及crontab定时写法的知识

程序中有while无限循环,但是我在青龙中设置了定时任务(每隔半小时运行一次),于是造成了进程中有多个python xxx.py程序在运行。(4)进行上面的操作后,不知道为何,还是没有批量kill到好几个python3 example.py进程,于是最后,我重启了VPS。(3)因为每半小时运行一次无限循环的python程序(example.py),所以会有多个PID,想批量结束。第一个红色箭头是进程的PID,第二个红色箭头是进程的PPID。环境:vps,centos7,python3。任务:结束这些进行。

2024-05-23 21:48:17 326

原创 centos下安装python3.8.10

二、下载并解压python安装包(你要下载哪个版本,可以直接把3.8.10改成你想要的3.x.y)注意:使用 altinstall 是为了避免覆盖系统默认的Python版本。python3.8 --version或者python3.8 -V。which python或者which python3.8。其自带的python版本是2.7.5。五、看一下各个版本的python的路径。python3.8进入环境。

2024-05-21 17:16:03 422

原创 BeautifulSoup4通过lxml使用Xpath,以及获取(定位)元素和其文本或者属性

(1)一个属性(如property)中包含[即这个属性值是a b c d这样的样式]某个字符串(如og:description)的写法。(3)获取其标签内的文本用元素.text,获取其某个属性用元素.get('属性')(2) 上述代码的结果是一个列表,使用时一般要转成单个(加[0]或者用循环)环境:win10,python3.8.10。首先需要安装:bs4,lxml。

2024-05-20 21:51:57 537

原创 python利用uiautomator2定位元素

有这样一个场景,手机页面上有多个重复文本内容,如“关注”(或者包含“关注”二字),现在想定位所有的“关注”并依次点击它们。环境:win10,python3.8.10,真机。

2024-05-17 21:25:38 366

原创 python实现记录一段代码执行的时间段情况

用python执行一个任务,需要记录何时开始,何时结束,一共运行了多长时间,并用X时X分X秒的样式来展现,记录实现代码。环境:win10,python3.8.10。

2024-05-14 21:57:38 111

原创 python使用yaml文件以及元组样式字符串使用eval的类型转换

下面再记录另一个问题,即读取到pic_name类目下的内容,也就是["('我的','my.png')", "('你的','you.png')"],我的本意是由两个元组构成的列表,但实际上,列表内部其实是两个样式是元组的字符串。编程中,对于可变内容,最好是将其放入配置文件中,经过这段时间的学习,感觉使用yaml文件很方便。我的环境:win10,python3.8.10。(2)要获取yml文件中某个类目(如pic_name)下的value值。接下来的代码,大体有两种需求。安装完毕后,查看一下。

2024-05-11 17:48:18 247

原创 python直接发布到网站wordpress之三批量发布图片

不过,此时发布图片的数量只能是一张图片。但在实际应用中,在同一篇wordpress文章中,肯定会有多张图片的情况,本篇就是实现用python操作wordpress批量发布图片到一篇文章中(而不是批量发布多篇文章,每篇文章中各一张图片)。注:images_folder = './jpg'是与pthon代码.py同目录下的、用于存放本次批量上传发布的图片的文件夹,程序会自动遍历其中的图片类型的文件并操作。在前面的文章中,实现了使用python操作wordpress发布文字内容和图片内容。

2024-05-03 16:00:38 442 1

原创 python直接发布到网站wordpress之二发布图片

注:big_image.jpg是和代码.py同目录下的要发布的图片文件。本篇实现发布带图片的内容,无图无真相嘛。

2024-05-03 15:45:22 332 1

原创 python直接发布到网站wordpress之一只发布文字

本地需要安装:pip38 install python-wordpress-xmlrpc。远程服务器:是宝塔一键部署的wordpress6.5.2。本地环境:win10,python3.8.10。

2024-05-03 15:40:23 528

原创 真机无需root实现抓包的两种方式之一小黄鸟篇

小黄鸟导出SSL证书,将证书放到VMOS建的虚拟机中,开启虚拟机root,在虚拟机中,将证书从用户级移动到系统级。(3) 在虚拟机中,导入小黄鸟证书。点击“HttpCanary根证书”,点击“导出HttpCanary根证书”,选择第一种导出类型System Trusted(.0),记住导出证书的存储位置(一会要将此证书传入到VMOS虚拟机中)。众所周知,在Andorid7(含)以上系统内抓包,需要root环境,将https证书从用户证书转移到系统证书中来,在没有root的情况下,是无法进行这种操作的。

2024-05-01 10:45:33 1930

原创 宝塔面板建网站关联域名

(5) 在宝塔面板的域名管理中,添加域名,注意,如果按照上图解析的域名,此处域名管理处不能添加 *.你的域名.xyz 的样式,只能填写 你的域名.xyz 的样式。目前,现在网上的免费域名已经很少了,由于是学习为目的,所以我选择购买了15元/年的狗爹的.xyz后缀的域名(可以支付宝付款)。(6) 稍等一会儿,就可以使用http://你的域名.xyz/first.html来访问了。这样最大的问题,是不容易记忆。(2)输入想要的域名,如果没有被别人注册,你就可以注册,并用支付宝支付。

2024-04-29 16:08:15 460

原创 从开通VPS到搭建宝塔面板全教程

你在输入域名(此时我们可能没有类似aaa.com这样的域名,所以要输入VPS的IP地址)的时候,下面的根目录也会跟着变动,等输入完成后,你可以把根目录再改回成/www/wwwroot/dq。这时,在你的浏览器中,输入外网面板地址的URL,输入username和password,即可登陆宝塔面板。第一次登陆,需要绑定你的宝塔账号,你可以到宝塔的注册界面,用手机注册一个,然后绑定,首先看一下你的VPS操作系统是什么类型的(其实你在选择VPS的时候,就已经选定了,我选择的事Centos系统)。

2024-04-28 17:58:37 1535

原创 python使用pushplus将消息推送到微信

编程序的时候,有时需要将提醒信息发送到微信,便于时刻掌握情况。二、编写代码(我已经写出一个函数,方便调用)pushplus就很方便的解决了这个问题。一、登陆网站并获取自己的token。这样微信上就能收到信息了。

2024-04-28 12:19:47 376

原创 python利用tg机器人推送发消息从安装到使用(二)

(1)ImportError: cannot import name 'ParseMode' from 'telegram'或者AttributeError: module 'telegram' has no attribute 'ParseMode'不过,随着telegram库的升级等各种原因,目前网上很多代码都不能直接使用(会报各种错误),经过一下午的查阅和研究,解决了绝大部分问题,程序可以正常运行。1、首先要安装telegram库。

2024-04-26 18:34:52 476

原创 python利用tg机器人推送发消息从安装到使用

点击@getuseridbot后,输入@get_id_bot ,把鼠标放在@get_id_bot 上,就能出现CHAT_ID。二、输入/newbot,创建一个新的机器人,输入机器人名字,必须以bot结尾。输入/start,随意输入些信息,再输入@getuseridbot。(2)使用from telegram import Bot。1、首先需要安装python-telegram-bot包。目的:编写一段Python代码,能够将消息推送到tg。一、首先得有tg,然后@BotFather添加机器人。

2024-04-26 14:51:13 593

原创 好用的youtube的截图插件

chrome浏览器右上角三个点---Extensions---Visit Chrome Web Store。看到喜欢的播放内容后,先暂停,然后点击插件图标就可以了,而且保存的图片都是高清的(当然需要视频是高清的)。安装完成后,在chrome浏览器右上角的“Extensions”就出现了。(2)安装完毕后,在视频的控制条出就多出来一个图标。(注:不止一个结果。

2024-04-23 09:06:53 206

原创 No module named ‘execjs‘和playwright._impl._errors.Error: BrowserType.launch_persistent_context报错解决方法

execjs,playwright

2024-04-22 21:05:23 935

原创 selenium上传文件时打开指定本地文件路径

这个操作仅对webdriver.Chrome(options=chrome_options)有效,对undetected_chromedriver的uc.Chrome(chrome_options=chrome_options)无效。用selenium和chromedriver操作浏览器,其中有一个“本地上传”的按钮,点击后,会进入本地电脑的文件夹,但是这个文件夹一般是C:\Users\XX。如何指定本地上传路径呢?看起来很简单的一个问题,却没有想到如此复杂。经过内外的一通搜索,终于实现。

2024-04-22 20:18:15 468

原创 报错The chromedriver version cannot be discovered以及下载chromedriver.exe和查看其版本的命令

在使用selenium的时候,出现报错,The chromedriver version cannot be discovered。将chromedriver.exe放入项目的根目录中,同时放入python3.8的Scripts目录中。如果想要比较新的chrome浏览器对应的chromedriver,需要下面的链接。(1)首先要下载对应的chromedriver。如何找到python的路径呢?(2)下载好以后解压。

2024-04-22 18:55:01 1008

原创 使用selenium时出现element click intercepted报错的解决办法

就会报错了:element click intercepted: Element <span>...</span> is not clickable。对于这篇文章,我测试第一种方法并不好用,第二种好用。

2024-04-22 14:34:39 596

原创 本地安装mysql并用python访问它

首先安装需要的库:pip38 install aiomysql或者pip38 install aiomysql aiomysql==0.2.0。二、 下载完成后,一路Next或者Execute就行(默认端口3306)。然后输入密码,可以验证安装情况(也可以输入mysql --version)数据还是放在数据库中比较好,于是决定在本机安装个mysql服务。四、设置环境变量,这样就可以在任何目录下运行mysql了。如果要使用Navicat管理数据库,选第二个。在目录上cmd,进入命令框,输入命令。

2024-04-21 06:55:38 164

原创 记录反编译小程序

路径一般在:D:\LC\Documents\WeChat Files\Applet里,会有很多你用过的小程序的文件,然后按修改日期排序一下,最新的肯定就是你刚刚用过的那个。7、在反编译脚本wxappUnpacker-master的路径下运行如下代码。然后点击你想要操作的小程序(一般在最近使用里,之前可以先用手机用下小程序)4、解密完成后,解密好的包会在解密程序的wxpack的目录里面。3、运行工具中的小程序包解密,选择加密小程序包的路径。2、 在pc上找到此小程序的文件。一、首先找到小程序的文件。

2024-04-19 07:17:23 49

原创 python使用uiautomator2操作真机(vivo Y30)

进入路径后,直接adb devices即显示出了连接手机的情况(没想到会这么顺利),此时,手机界面上会有弹出框:询问是否运行这台计算机对手机进行调试。这时,到手机上,点击ATX小汽车图标,点击“启动UIAUTOMATOR”按钮,确定已经启动了相关服务,然后再重新Connect。注意:在weditor上定位手机界面上某个位置或者图标的时候,可能要拨弄几次静态和实时的按钮。1、设置-系统管理-关于手机-软件版本号-在“软件版本号”上连续点击即可进入开发者模式。输入手机设备号,点击Connect。

2024-04-18 20:07:01 411

原创 python使用uiautomator2操作真机(oppo a9x)

进入路径后,直接adb devices即显示出了连接手机的情况(没想到会这么顺利),此时,手机界面上会有弹出框:询问是否运行这台计算机对手机进行调试。这时,到手机上,点击ATX小汽车图标,点击“启动UIAUTOMATOR”按钮,确定已经启动了相关服务,然后再重新Connect。输入python38 -m uiautomator2 init,注意手机上要同意继续安装(会有两次或者多次提醒,均同意,注意:在weditor上定位手机界面上某个位置或者图标的时候,可能要拨弄几次静态和实时的按钮。

2024-04-18 06:51:27 368

原创 python使用uiautomator2操作真机(华为Honor 10)

进入路径后,直接adb devices即显示出了连接手机的情况(没想到会这么顺利),此时,手机界面上会有弹出框:询问是否运行这台计算机对手机进行调试。输入python38 -m uiautomator2 init,注意手机上要同意继续安装(会有两次或者多次提醒,均同意)python3.8.10,华为手机Honor 10(6G,64g),版本android 9。2、设置-系统-开发人员选项-打开“USB调试”和打开“仅充电模式下允许ADB调试”1、设置-关于手机-在“版本号”上连续点击即可进入开发者模式。

2024-04-17 21:30:32 430

原创 使用undetected-chromedriver报错遇到的问题及解决方法,以及它使用SOCKS代理的问题

然后,查看确认下selenium和undetected-chromedriver的版本。如果还有问题,可能就是chrome浏览器版本的问题。有网友给出如下解决方案(我未尝试)。经查询,应该是版本问题和更新问题。最后,记录一下uc使用代理的方法。环境:python3.8.10。这时,就应该可以正常运行了。

2024-04-16 19:46:21 1031

原创 python使用uiautomator2操作雷电模拟器9找图(二)

实际中还有情况,比如这些子图在一屏中显示不全,需要上划手机屏幕,不断的出现,这时上面的代码就要结合uiautomator2的操作。今天在实际中有遇到了新的问题:一幅主图中,可能存在多个相同的子图,想要找到所有的子图,并操作。其中,0.5为指定方向滑动百分之多少,为float型数据,数据范围是:0.01 到 0.999。使用一个while循环,将上述两段代码结合起来,直到符合某种条件,break退出循环,就可以了。上代码,主要就是用find_all_template代替了find_template。

2024-04-11 19:34:07 264

原创 python使用uiautomator2操作雷电模拟器9找图(一)

注意:提取s2.png的时候,一定要使用画图板打开s1.png,然后比例是100%的时候,再裁切得到s2.png,否则会有意想不到的错误(找不到图片,pos返回None)。本文就利用uiautomator2的截屏、模拟点击和aircv的找图功能,实现对指定寻找的图片的位置的点击。上述代码中,s1.png是用uiautomator2的截图命令截取的。搭建好uiautomator2后,主要就是使用了。安装库:pip38 install aircv。环境:python3.8.10,雷电模拟器9。

2024-04-10 21:10:51 526

原创 python使用uiautomator2操作雷电模拟器9并遇到解决adb 连接emulator-5554 unauthorized问题

点击“关于平板电脑”-拉至最底部-多次点击“版本号”即可。返回一次,可以在“设置”-“系统”-“高级”看到“开发者选项”(这里和雷电4不一样),如图。今天有空,再使用雷电模拟器9,android版本9来测试一下 uiautomator2。上面这篇文章用的是雷电模拟器4,雷电模拟器4.0.78,android版本7.1.2。进入雷电9的路径D:\leidian\LDPlayer9后,运行下面命令。我的python3.8.10设置的环境变量并改名为pip38。边写边测试边解决问题。然后打开USB调试。

2024-04-10 11:12:35 1059

原创 python使用%s%d等格式化数据、将文本转换成json格式、截取字符串的记录

要求:获取某个字符指定字符的前面或后面的所有字符内容。(一)使用%s%d等格式化数据。(二)将文本转换成json格式。实际中遇到的,记录下来。

2024-04-10 07:50:46 195

原创 python用requests的post提交data数据以及json和字典的转换

python使用requests的post提交数据的时候,代码写法跟抓包的headers里面的'Content-Type'有关系。环境:python3.8.10。

2024-04-09 19:26:11 473

原创 python实现将日期文本化

需要:有些时候,需要在一段文本的后面,添加上日期,尤其是文本重复的情况下,添加上每天的日期更为重要。环境:python3.8.10。

2024-04-09 18:38:45 156

原创 下载电脑端小红书的Chrome插件神器

就会出现下载的按钮,下载成为一个zip的压缩包,解压后,既有此视频的封面图,也有视频文件,还有一个文章内容的文件。现在想下载视频和图片,找到了一个好用的chrome插件,如下图。小红书不仅有手机APP,还有PC电脑端,其网址是。下载并使用插件后,点开一个视频。

2024-02-24 22:24:13 975

原创 chrome浏览器记录不住网站登录状态,退出后再打开就需要重新登陆的解决办法

1、chrome浏览器右上角三个竖的点,然后进入“设置”(Settings),选择“隐私与安全”(Privacy and security)3、 然后拉直最底部,有个“更多设置”(Additional content settings)4、拉至最底部,有个“将网站数据记录到本地设备”(On-device site data)chrome浏览器记录不住网站登录状态,退出后再打开就需要重新登陆,比较繁琐。2、选择“网站设置”(Site settings)6、重启浏览器,再次登陆各类网站,就可以了。

2024-01-01 10:45:23 2566

php_memcache_all各版本都有实测好用

安装这个很坑,下面总结废我好大劲,要5分不为过 1.首先用phpinfo()看一下本机php的配置情况,主要有: PHP Version 5.6.17 //告诉你使用的php版本 Compiler MSVC11 (Visual C++ 2012) Architecture x86 //这里决定是用32位还是64位,而不是看你的操作系统 Loaded Configuration File C:\AppServ\php5\php.ini //这里决定修改的php.ini在哪 PHP Extension Build API20131226,TS,VC11 //让你知道安装扩展时,应该用什么样的 Thread Safety enabled //线程安全还是不安全 Server Root C:/AppServ/Apache24 //让你知道运行此php的apache在哪 extension_dir C:/AppServ\php5\ext C:/AppServ\php5\ext //指出扩展dll该放到哪里 2、根据以上信息,下载对应的memcache的php扩展:php_memcache-3.0.8-5.6-ts-vc11-x86(本机如此) 解压后,将php_memcache.dll拷贝进C:/AppServ\php5\ext 3、在C:\AppServ\php5\php.ini中进行修改,添加一行extension=php_memcache.dll 4、重启apache。 如果正常,再次运行phpinfo(),搜索memcache,就可以发现memcache的信息。 但第4步重启apache有很多坑。这里说一下步骤: cmd后进入C:/AppServ/Apache24下的bin目录,执行httpd.exe -k start,看能否运行,若提示“(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次”,说明有别的程序占了80端口和433端口,运行netstat -a -o ,看一下哪个进程PID在运行80和433端口,然后在任务管理器或其它方法结束这个PID进程或者服务,再次执行httpd.exe -k start。 如果先运行httpd.exe -k stop,显示“apache2.4没有开始”,也是上述这个原因。(双击运行httpd.exe是不允许的行为) 但如果httpd.exe -k restart,是可以运行的,但其实没有用:这个最坑。 5、正确重启apache之后,还有可能运行localhost时出现fibbend:don\'t have permission access on this server,这是apache的配置文件中有问题,打开apache的httpd.conf,搜索<Directory />,改为<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory>,即开放指定目录的访问权限。(如<Directory "c:/wamp/apps/phpmyadmin3.5.1/">)。 之后重启apache即可。 6运行memcached,首先下载memcached.exe,然后进入目录后,运行memcached.exe -d install,然后运行memcached.exe -d start,然后可用telnet 127.0.0.1:11211进行测试。

2017-09-07

WinLess-1.9.1.msi

bootstrap里less的转换工具

2017-08-30

jquery.mobile-1.3.2.zip

jquery.mobile-1.3.2.zip非常全的jquerymobile,含有css和js,移动开发必备。

2017-08-30

nirvana企业级wordpress模板

nirvana企业级wordpress模板

2017-08-30

startbootstrap-shop-homepage-gh-pages非常棒的bootstrap商城模板

startbootstrap-shop-homepage-gh-pages非常棒的bootstrap商城模板

2017-08-30

vanilla很有名的国外的论坛搭建框架

vanilla很有名的国外的论坛搭建框架

2017-08-30

jquery-1.8.3.min.js直接下载可用

jquery-1.8.3.min.js直接下载可用

2017-08-30

Inline Hook类

针对jmp前5个字节的inline hook编写的类 类中实现方法Hook LPSTR pszModuleName LPSTR pszFuncName PROC pfnHookFunc 你只需填入模块名 要HOOK的API函数和自己的钩子函数即可 非常便利

2014-09-30

WinHex17.zip

我想将一个DLL文件转化成16进制的文件,找到了这个软件!非常好用的软件,经过测试好用,而且自动汉化,棒极了!

2014-04-11

大漠插件最后一个免费版本

大漠插件最后一个免费版本,功能强大,经测试好用!

2014-04-10

myeclipse.10.0破解补丁

myeclipse.10.0破解补丁,不好用你抽我!

2014-04-10

apache-tomcat-7.0.53-windows-x86.zip

apache-tomcat-7.0.53-windows-x86.zip一直在用,java web开发必备,非常好用!

2014-04-10

win32api help

win32api,可快速查找相应的API函数,如果没有装MSDN,这个非常方便实用

2013-04-15

网众NxD 7.0说明书使用指南

网众NxD 7.0说明书使用指南,PDF版的,非常难得,好不容易找到的,拿来分享!

2012-09-13

windows驱动开发入门

windows驱动开发入门,入门的好教材

2012-09-13

IDA代码破解揭秘

好不容易找到的一本电子书,PDF格式的,是难得的关于IDA详细介绍的一本实用手册。

2012-09-12

定时自动关机的小软件

这是挺实用的一个小软件,自动定时关机,经测试,好用。

2012-09-11

Delphi界面皮肤BusinessSkinForm

和VCLSKIN一样好用的DLEPHI界面工具,值得一用。

2012-09-11

HP1215打印机说明书

打印机坏了,好不容易找到的说明书,拿来分享。

2012-09-11

剪辑mp3.wav等音频的小软件,超强大实用

用于剪辑mp3.wav等音频的小软件,超强大实用

2012-09-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除