- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 AfxBeginThread源码解析
VC程序员对AfxBeginThread函数一定不会陌生,用它来启动线程也是非常的方便,今天一起来看一下AfxBeginThread的具体实现 我们知道操作系统提供的创建线程函数是CreateThread,AfxBeginThread最终也一定会调用操作系统提供的CreateThread, 那么这个调用链是什么样的呢? 大家都知道进程内的多个线程是共享地址空间,那么当防止多线程互相影响,需要...
2018-11-07 16:51:26
813
原创 C++常见问题
1.reinterpret_cast,static_cast,dynamic_cast、const_cast区别 reinterpret_cast,非常随意的一种类型转换方式,不做任何检查,非常危险,跟C的强制类型转换差不多 static_cast,同C的隐示类型转换差不多,用做下行转换时不提供动态类型检查 dynamic_cast,类层次上的转换,下行转换时提供动态类型检查,需要有虚函数表...
2018-11-05 15:52:10
260
原创 《跟我一起学爬虫系列》4-使用urllib和beautifulsoup爬取网页
目标 本节目标为爬取成都市高新区2017-2018年所有预/现售楼盘信息 输出格式为:楼盘名 用途 开发商 地址 预售日期 数据来源:成都市城乡房产管理局 说明:urllib和beautifulsoup的使用教程网上很多,这里不详细说明了 网站分析 通过分析页面,发现页面使用了ajax技术,请求的url始终是同一个,通过post的数据来切换数据,数据位于id为ID_ucSho...
2018-10-17 11:33:57
967
原创 《跟我一起学爬虫系列》3-一个简单爬虫示例
本文抓取页面为http://news.baidu.com/,首先介绍下无关紧要但有必要了解的,然后代码说明 robots.txt Robots协议全称是网络爬虫排除标准,网站通过Robots协议定义网站访问限制,当然,某些时候,恶意爬虫是不会理会的 想了解更多,请查看Robots.txt http://news.baidu.com/robots.txt User-agent: Baid...
2018-10-15 17:53:29
345
原创 《跟我一起学爬虫系列》导读
近期工作上用到python,但是由于测试脚本比较简单,本着学以致用的心态,尝试下python较热门的一个应用--爬虫,python环境为3.7,因工作较忙,更新不会太快 发布这些个系列的目的: 一边学习一边总结,以后再次需要可以迅速找出 方便其他想学习python爬虫的人能够快速入手 《跟我一起学爬虫系列》1-爬虫简介 《跟我一起学爬虫系列》2-HTTP/HTTPS简介 《跟我一起学爬虫...
2018-09-30 15:21:12
246
原创 《跟我一起学爬虫系列》2-HTTP/HTTPS简介
HTTP/HTTPS HTTP:超文本传输协议):是一种发布和接收 HTML页面的方法,默认端口80 HTTPS:HTTP的安全版,在HTTP下加入SSL层,默认端口443 工作流程 客户端(通常是浏览器)发送一个HTTP请求 服务端开始处理请求,发送HTTP响应把结果返回给客户端 其中一个请求的开始到一个响应的结束称为事务,事务结束后还会在服务端记录一条日志 HTTP请求 HTTP...
2018-09-30 15:18:10
323
原创 《跟我一起学爬虫系列》1-爬虫简介
什么是爬虫 爬虫就是一段自动化程序,模拟真实的人类访问网络的方式,快速的从网络获取数据。如果法律允许,爬虫可以采集你在网页上看到的任何数据 形象一点,我们可以把爬虫想象成一个机器人,它不知疲倦的打开网页,收集我们需要的数据,当然,这个机器人的手速比我们快了不知道多少倍 爬虫能做什么 这个自行百度即可,爬虫技术较容易被一些不怀好意的人利用来做一些游走在法律边缘的事情 爬虫怎么抓数据 确定...
2018-09-30 15:17:52
243
原创 Python弹出输入框并获取输入值
使用自带的Tkinter模块,简单的弹输入框示例,返回输入值 from Tkinter import * import tkMessageBox def getInput(title, message): def return_callback(event): print('quit...') root.quit() def close_ca...
2018-09-25 17:53:22
36058
10
原创 Python自己使用中遇到的问题汇总(持续更新)
Q:ctypes导入动态库报错126 A:导入的动态库依赖的其他动态库缺失 Q:构建一个字符串,并对字符串的特定位置赋值 A: L = [' ' for i in range(0, 256)] for i in range(0, 14): L[240+i] = val[i] data = ''.join(L) ...
2018-09-25 17:44:26
271
转载 Windows下Python2与Python3共存的方法
添加环境变量 C:\Python37\; C:\Python37\Scripts; C:\Python27\; C:\Python27\Scripts; 运行Python2 py -2 运行Python3 py -3 运行pip2 py -2 -m pip 运行pip3 py -2 -m pip
2018-09-25 09:02:46
234
原创 编程题
题目摘自网友发的2018阿里巴巴在线编程题 输入数据n(n>=6)代表n个数,从0-9任意输入n个数,然后在n个数选出6个数xx-xx-xx表示 时:分:秒,求出最小时间和最大时间,若时间无效,则输出时间无效 例如: 输入: 6 6 5 4 3 2 1 输出: 123456 235641 输入: 6 9 9 9 9 9 9 输出: 时间无效 结题思路 因为输入数字限定为0-9,记...
2018-09-22 17:16:57
709
原创 基于Winpcap实现ARP欺骗
事件起因 某小伙伴太热衷于浏览新闻看网页,常常忘了自己手中的事情,于是做了这个小程序挑逗了一下 实现过程 ARP欺骗有分为2个方向,欺骗网关与欺骗被挑逗者,核心为伪造ARP Reply报文,更新目标主机的ARP缓存表,我这里选择了攻击被挑逗者,伪造网关向被攻击者发生ARP Reply报文,引发被攻击主机更新ARP缓存表 为了让对方有一定上网时间,攻击流程为: 设置休眠间隔10-25分钟 ...
2018-09-22 17:16:25
2127
翻译 Python版本极简打飞机
简介 以前的代码了,今天刚好看到,就传上来了,当时是网上看了下python的书,里面讲了打飞机这个游戏,就用python写出来玩了下,使用的是pygame模块 主函数 主函数主要创建子弹,飞机,敌机,调度各功能部件 def run_game(): #init game and screen pygame.init() game_settings = setting...
2018-09-19 23:31:35
602
原创 公告板
在公告板风格中,通过移除所有与应用相关的语义,仅使用2个通用操作(发布事件与订阅事件),联结所有实体的公告板变得更加通用 定义事件管理器 class CEventManager { public: typedef bool(*Fn)(void*); void subscribe(int event, Fn handler); void unsubscribe(int...
2018-09-19 22:50:12
504
翻译 获取进程句柄
HANDLE GetProcessHandle(const char* sProcessName) { //获取进程快照 HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapShot == INVALID_HANDLE_VALUE) { //A...
2018-09-19 22:49:29
1312
翻译 CVI程序运行时异常整理
Q:ActiveX controls cannot be created in a thread whose concurrency model is multithread apartment (MTA) A:The fix to this issue is to call CA_InitActiveXThreadStyleForCurrentThread prior to calling N...
2018-09-19 22:48:16
2137
原创 插件系统
简介 插件是基于开发人员预先定义好的标准接口开发的独立部件,windows平台下多以dll形式呈现 有的公司在软件开发中,并不会做软件设计,更没有相关文档,纯粹想到哪写到哪,当软件完工进入维护/功能扩展阶段后,如果因为某种原因,新的人员进入软件改进。那么恭喜,新人员扩展功能非常困难,还得承担相当的破坏现有功能的风险 使用插件系统可以一定程度上解决上述问题,当系统需要的功能不变,仅需变更实现方...
2018-09-19 22:47:28
760
原创 ANSI与UTF-8编码互相转换,CString,std::string,char*,const char*互相转换
ANSI与UTF-8编码互相转换 std::string EncodeConvert(std::string sInfo, int sourceEncode, int targetEncode) { // convert unicode const char* buf = sInfo.c_str(); int len = MultiByteToWideChar(sourceEncode,...
2017-08-02 13:37:40
1931
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅