自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CUFEECR的博客

记录项目实战、学习笔记、经验技巧、异常处理等,在学习和记录中进步。

原创 Python 爬取留言板留言(三):多进程版+selenium模拟
原力计划

Python用于爬虫,可以爬取网上的大量数据。本篇详细讲解了利用Python selenium模拟操作浏览器抓取领导留言板的数据,多进程实现,用2种方法控制进程数量达到提高爬取小频率的目的。同时需要提前手动获取fid,同时利用多个函数来分别实现具体功能,达到了低耦合的编程规范,也认识到了一些不足,...

2020-02-29 18:03:57 2007 2

原创 Python 爬取留言板留言(一):单进程版+selenium模拟
原力计划

Python用于爬虫,可以爬取网上的大量数据。本篇详细讲解了利用Python selenium模拟操作浏览器抓取领导留言板的数据,单进程实现,同时需要提前手动获取fid,同时利用多个函数来分别实现具体功能,达到了低耦合的编程规范,也认识到了一些不足,在后期进行改进。

2020-02-29 16:47:11 6229 2

原创 Python 爬取留言板留言(二):多线程版+selenium模拟

Python用于爬虫,可以爬取网上的大量数据。本篇详细讲解了利用Python selenium模拟操作浏览器抓取领导留言板的数据,多线程实现,用3种方法控制线程数量达到提高爬取小频率的目的,同时强化了异常捕获和处理,增加代码的健壮性,与第一版相比有了较多的改进。同时需要提前手动获取fid,同时利用...

2020-02-28 21:49:15 4391 2

原创 Python全栈(五)Web安全攻防之3.sqlmap的使用介绍
原力计划

SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令;Sqlmap的输出信息按从简到繁共分为7个级别依次为0、1、2、3、4、5和6;sqlmap获取目标的方式有直连数据库、指定目标URL和读取不同文件类型进行SQL注入3种方...

2020-02-27 13:56:07 4160 0

原创 Python SQLite 基本操作和经验技巧(二)

SQLite是一个轻量级的数据库,Python擅长于数据分析处理,用Python进行SQLite的数据库操作很方便,常用的编程技巧有删除整个数据表、统计数据库sqlite中某一table中的记录行数和对时间操作等。

2020-02-20 21:17:51 3221 2

原创 Python SQLite常见异常及解决办法

SQLite是一个轻量级的数据库,Python擅长于数据分析处理,用Python进行SQLite的数据库操作很方便,在编程时常见的异常及其解决办法有获取某一列数值中的最大值一直返回9问题及解决办法和sqlite3.OperationalError: no such column错误及解决等。

2020-02-20 18:52:46 2226 3

原创 Python全栈(五)Web安全攻防之2.信息收集和sqlmap介绍

CDN的目的是使用户可就近取得所需内容,可以通过ping离开判断是否是CDN,如果目标没有使用CDN,可以直接利用ping获得IP地址;信息收集方式有主动和被动两种,shodan直接进入互联网的背后通道,可以搜索摄像头、端口号、IP地址和城市;命令行中使用shodan要先初始化,可以搜索、按条件搜...

2020-02-12 21:24:11 3768 3

原创 Python全栈(五)Web安全攻防之1.信息收集

Kali虚拟机安装分为安装虚拟机和在VMware上安装Kali两步;域名是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,whois用来查询域名是否已经被注册和注册域名的详细信息,ICP为向广大用户提供互联网信息业务和增值业务的电信运营商;域名分为顶级域名和子域名,有很多...

2020-02-10 19:39:06 2276 1

原创 Python全栈(四)高级编程技巧之11.Python全局解释器锁和高级编程技巧总结

GIL即全局解释器锁,每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个线程可以执行代码;总结包括区别(不)可变数据类型,Python垃圾回收机制,函数或成员变量包含单下划线前缀结尾和双下划线前缀结尾的区别,判断一个对象是函数还是方法,super,isinstance和type,创建大量...

2020-02-09 16:17:54 2184 4

原创 Python全栈(四)高级编程技巧之10.Python多任务-协程

同步与异步,堵塞与非堵塞,生成器的send()方法有一个参数,该参数指定的是上一次被挂起的yield语句的返回值,第一次调用send()时必须传入None;使用yield完成多任务,消耗的资源比线程、进程更少,yield from相当于一个for循环,并且省去了很多异常处理,协程是Python中另...

2020-02-07 20:32:54 4400 7

原创 Python全栈(四)高级编程技巧之9.Python多任务-进程

os.fork()创建一个子进程,进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位;进程间不能直接通信,要通过Queue进行;进程之间全局变量是不共享的,与线程不同;当需要创建的子进程数量较多时,要用到multiprocessing模块提供的Pool类,po.close()执行后...

2020-02-05 17:04:44 4220 6

原创 Python全栈(四)高级编程技巧之8.Python多任务-线程(下)和进程介绍

有两个线程对某一资源同时写入时,就可能会产生资源竞争,dis.dis()可以查看代码执行过程;当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制,即加互斥锁,保证了多线程情况下数据的正确性,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁,重用锁对象需要使用RLock;...

2020-02-04 20:27:58 2722 3

原创 Python全栈(四)高级编程技巧之7.Python多任务-线程的介绍和使用

多任务是指多个任务同时进行,子线程结束之后主线程才会结束,要想主线程直接执行结束,可增加守护线程;enumerate()函数可以查看当前线程的数量,线程运行是没有先后顺序的;当调用Thread创建出来的实例对象的start()方法的时候,才会创建线程以及开始运行这个线程;类继承自Thread时,r...

2020-02-04 13:53:20 2178 4

原创 Python全栈(四)高级编程技巧之6.Socket编程-TCP客户端和服务端

TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,特点是面向连接、可靠传输;TCP客户端构建流程包括创建socket、连接服务器、收发数据、 关闭套接字;TCP服务端构建过程包括socket创建套接字、信息绑定、listen使套接字变为可以被动连接、accept等待客户端的连接、收发...

2020-02-03 15:34:32 4651 3

原创 Ubuntu系统 使用与开发 常见异常与解决办法

再Linux(Ubuntu)使用与开发的过程中经常会遇到一些异常,例如误删除Ubuntu家目录下系统自带文件夹如Desktop等,总结了解决办法,供大家参考。

2020-02-02 19:51:00 1799 0

原创 Python全栈(四)高级编程技巧之5.Socket编程-基本概念、UDP发送与接收数据

IP用来标记网络上的一台电脑,根据版本分为IPv4和Ipv6,根据IP分为A、B、C类等;端口是为了识别不同的应用程序而分配给不同的应用的,分为知名端口和动态端口;TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,分为四层,应用程序通过套接字向网络发出请求或者应答网络请求...

2020-02-02 18:37:53 3321 2

原创 Python全栈(四)高级编程技巧之4.元类编程、迭代器和生成器

__getattr__魔法方法是在查找不到属性的时候调用,__getattribute__方法在__getattr__方法之前执行;在类中实现 __get__ 、__set__ 、__del__ 中的一个方法,即可构成属性描述符,属性查找顺序优先级最高的是属性描述符;type还可以动态的创建类ty...

2020-02-02 11:33:19 3283 6

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