python
文章平均质量分 77
有趣的爬虫
pardon110
这个作者很懒,什么都没留下…
展开
-
python 元类
元类metaclassA metaclass is a class/object which defines a type/class of other classesmetaclass 可以是个类,函数,或者是支持调用接口的对象原理创建类对象,它的metaclass将会被调用,使用当前类名,基类及属性和方法若metaclass没有被定义,那么默认的 metaclass typ...原创 2019-06-02 11:07:45 · 120 阅读 · 0 评论 -
python 类概述
类方法类方法 VS 静态方法 VS 实例方法通常都在类代码块内定义类方法和实例方法 都有宿主类方法的使用类对象 cls 作为第一个参数, 实例方法则是 实例对象 self实例的可见范围更广,宿主可以传递各自相关信息,显然实例传递的信息量更大类方法定义 使用装饰器 @classmethod静态方法无需宿主参数 self,cls定义方法体中不能使用类或实例的任何属性和方法...原创 2019-06-01 19:13:59 · 153 阅读 · 0 评论 -
python 容器类 数据结构
集合(set)set集合 可变容器set 不记录元素的添加顺序, 无序set元素不允许重复, 应用场景去重set 方法索引支持运算符<= issubset() 左侧是否为右侧set对象子集>= issuperset() 范围比较- difference() 对集合做减法, 不改变c集合本身c.difference_update(books) 用c集合...原创 2019-06-01 19:08:55 · 318 阅读 · 0 评论 -
文件操作IO指引
pathlib模块pathlib 一组处理操作系统上路径的类库PurePath 逻辑路径,并不会检查是否有真正的文件或目录PurePath 对象支持 / 作为运算符,win,unix皆用此PurePosixPath, PureWindowPathpathpath 是 purepath 子类,会真正访问底层的文件系统判断 Path 对应的路径是否存在,可以对文件进行读写...原创 2019-05-31 12:35:48 · 120 阅读 · 0 评论 -
scrapy 用爬虫规则指定爬行轨迹自动抓取
需求给定爬虫起始地址,路径,获得目标页的指定内容约定路径 起点首页 --> (历史)频道 --> 小说info页–> 章节详情起始页 --> 作者中心 --> 大神之光路径中的每个页面html结构都不同分析通用爬虫,写规则,用链接抽取器为便于演示,只展示起点与终点页指定内容,中间路径以爬虫引擎debug信息展示准备scrapy 1.6Sel...原创 2019-05-29 19:53:39 · 795 阅读 · 0 评论 -
scrapy runspider 导出json文件时乱码
scrapy runspider 导出乱码初步判断 ,输入输出编码不一致FEED_EXPORT_ENCODINGDefault: NoneThe encoding to be used for the feedIf unset or set to None (default) it uses UTF-8 for everything except JSON output, whic...原创 2019-05-25 21:44:20 · 437 阅读 · 0 评论 -
scrapy反爬机制 与 Selenium搭配
反爬虫机制需求背景网站内容使用js动态加载,一般的爬虫无法抓取分析目标站点使用 shell 调试工具动态加载比如请求api得到新数据向动态请求图片api发起请求json.loads(response.text) 函数来加载处理响应的api数据对象小计Spider 到底应该使用 XPath 或 CSS 选择器来提取响应数据,还是使用 JSON,完全取决于目标网...原创 2019-05-22 12:59:51 · 451 阅读 · 0 评论 -
scrapy简记之抓取小说示例
scrapy网络爬虫核心工作通过网络向指定的 URL 发送请求,获取服务器响应内容使用某种技术(如正则表达式、XPath 等)提取页面中我们感兴趣的信息高效地识别响应页面中的链接信息,分析这些链接递归执行此处介绍的第 1、2、3 步使用多线程有效地管理网络通信交互分析正则表达式设计的初衷主要是处理文本信息HTML 文档不仅是文本文档,而且是结构化文档,使用XPath更...原创 2019-05-22 12:52:41 · 384 阅读 · 0 评论 -
python数据可视化简例
数据流数据抓取数据处理,比如清洗,脱敏等数据可视化 ,使用工具库生成图例可视化matplotlibmatplotlib简介Python 2D 绘图库通过 Matplotlib 就可以方便地制作折线图、柱状图、散点图等各种高质量的数据图常用函数或方法指引matplotlib.pyplot.plot 生成折线图legend 图例time, xlabel,ylab...原创 2019-05-21 10:22:31 · 447 阅读 · 0 评论 -
python文档与测试工具
文档 pydoc模块文档编写在函数、类、方法定义后定义一个字符串即可文档查看使用 help() 函数和 doc 属性,在控制器中查看函数、类、方法的文档pydoc模块方便地查看、生成帮助文档python -m pydoc 模块名 在控制台中查看pydoc查看文档组织方式文档说明 模块顶部注释class部分 列出模块所包含的全部类function 全部函数d...原创 2019-05-20 15:34:43 · 185 阅读 · 0 评论 -
python最全邮件收发pop3与smtp
smtplib 发送流程连接服务器 连接 SMTP 服务器,并使用用户名、密码登录服务器创建邮件 创建 EmailMessage 对象,该对象代表邮件本身发送邮件 调用代表与 SMTP 服务器连接的对象的 sendmail() 方法发送邮件模块smtplib模块smtplib.SMTP 得到邮件连接对象email.message.EmailMessage 构建复杂邮件...原创 2019-05-20 11:17:39 · 1227 阅读 · 0 评论 -
cookie管理器(http.cookiejar)
http.cookiejar模块urlopen() 既可发送 GET 请求,也可发送 POST、PUT、DELETE、PATCH 等请求大部分时候,urllib.request 模块可代替 http.client 模块应用场景访问Web应用中被保护的资源维护与服务器之间的 session,借助于 cookie 管理器来实现通过cookie管理session创建 http.c...原创 2019-05-19 13:15:39 · 884 阅读 · 0 评论 -
网络编程模块指引
计算机网络通信协议组成语义部分 用于决定双方对话的类型语法部分 用于决定双方对话的格式变换规则 用于决定通信双方的应答关系TCP(Transmission Control Protocol)传输控制协议,规定了一种可靠的数据信息传递服务端口16位的整数,用于表示将数据交给哪个通信程序处理在同一台机器中不能有两个程序使用同一个端口,端口号可以为 0~65535公认端...原创 2019-05-19 12:10:10 · 214 阅读 · 0 评论 -
urlopen实现多线程下载
多线程下载步骤使用 urlopen() 方法打开远程资源获取指定的 URL 对象所指向资源的大小(通过 Content-Length 响应头获取计算每个线程应该下载网络资源的哪个部分(从哪个字节开始,到哪个字节结束)依次创建并启动多个线程来下载网络资源的指定部分相当于多个线程执行体,对同一资源进行分段下载断点下载原理下载之初 生成网络资源具有相同大小的空文件 及 配置文件...原创 2019-05-19 11:57:53 · 439 阅读 · 0 评论 -
一个命令开启http服务器
命令python -m http.server# 参数 [-h] [--cgi] [--bind ADDRESS] [--directory DIRECTORY] [port]详解cgi 指定cgi脚本服务器本质将http请求转为python命令行执行映射脚本并返回对应结果以服务器的形式访问python脚本文件py脚本代码文件默认目录在cgi-bin或者htb...原创 2019-05-18 21:48:25 · 2044 阅读 · 0 评论 -
多线程并发编程不完全指引
线程和进程进程当一个程序进入内存运行时,即变成一个进程。进程具有独立性,动态性,并发性现代操作系统支持多进程的并发执行并发(Concurrency) VS 并行(Parallel)并行 在同一时刻有多条指令在多个处理器上同时执行并发 在同一时刻只能有一条指令执行,多个进程指令被快速轮换执行(cpu执行速度太快了)线程线程的调度和管理由进程本身负责完成线程不...原创 2019-05-18 10:40:26 · 167 阅读 · 0 评论 -
python多进程编程指引
fork方法(仅适合linux)python支持使用多进程来实现并发编程fork方法作用启动两人进程一个是父进程,一个是fork出来的子进程os.fork()返回0,则表明fork出来的子进程在执行,若返回非0,则表明是父进程在执行进程ipos.getpid()os.getppid()应用场景并发执行的任务放在 if pid==0: 的条件执行体中, 即启动多个子...原创 2019-05-18 10:34:35 · 198 阅读 · 0 评论 -
数据库编程之sqlite,mysql最简指引
DB API协议全局变量apilevel 2.0 版本threadsafety 线程安全等级0 则表示线程完全不能共享该模块1 表示该模块具有部分线程安全性,线程可以共享该模块,但不能共享连接3 代表该模块完全是线程安全paramstyleformat 表示在 SQL 语句中使用 Python 标准的格式化字符串代表参数pyformat 表示在 SQL 语句中使...原创 2019-05-17 20:43:18 · 280 阅读 · 1 评论 -
python标注赋值 与 函数
annotation – 标注关联到某个变量、类属性、函数形参或返回值的标签,被约定作为 type hint 来使用。局部变量的标注在运行时不可访问,但全局变量、类属性和函数的标注会分别存放模块、类和函数的 annotations 特殊属性中。variable annotation – 变量标注对变量或类属性的 annotation。在标注变量或类属性时,还可选择为其...转载 2019-03-31 13:03:23 · 874 阅读 · 0 评论 -
python 多线程与队列
概念以抛异常的形式实现,达到线程结束的目的线程基础使用线程可以把占据长时间的程序中的任务放到后台去处理每个独立的进程有一个程序运行的入口,顺序执行序列和程序的出口线程不能独立运行,必须依存在应用程序中,由应用程序提供多个线程执行控制线程的结束一般依靠线程函数的自然结束也可以在线程函数中调用thread.exit(),抛出SystemExit exception,达到退出...原创 2019-03-06 10:17:00 · 4340 阅读 · 3 评论 -
求n的阶乘后有多少个0
需求n!后面有多少个06!=12345*6=720.720后面有1个0n=10000,求n!。解析因2足够多,简化为每个阶,多少个5的因子,每个记一次0顺序排序n个数,每轮除5,得到累计5的指数(5,25,125…)的个数,后累加js解法n=0 // 计数k=10000 // 初始值// 外层遍历阶数for(k;k&amp;amp;amp;amp;gt;=1;k--){ ...原创 2019-01-23 15:32:18 · 1058 阅读 · 0 评论 -
python进阶指引
python导读python文件编程交互编程开发环境配置windows linux mac数据结构列表列表推导式可以嵌套列表推导不会产生副作用如同php般python的字符串也是一个伪列表正常循环中的临时变量在循环结束后依然存在列表推导本质上是向list函数传入一下映射对象,该对象接收一个lambda函数列表推导式只是一个语法糖而已,map接收函数与...原创 2018-12-10 13:14:22 · 475 阅读 · 0 评论 -
可迭代对象 vs 迭代器 vs 生成器
在使用Python的过程中,很容易混淆如下几个关联的概念:容器(container)可迭代对象(Iterable)迭代器(Iterator)生成器(generator)生成器表达式{list, set, dict} 解析式它们之间的关系如下表所示:dfjfddfd...转载 2018-12-03 23:48:36 · 112 阅读 · 0 评论 -
python 实现strtStr算法
前置知识 for …else 语法 假设有如下代码:for i in range(10): if i == 5: print 'found it! i = %s' % ielse: print 'not found it ...'你期望的结果是,当找到5时打印出:found it! i = 5实际上打印出来的结果为:found ...原创 2018-08-27 13:29:27 · 348 阅读 · 0 评论 -
python2与python3共存 python启动器
最近在使用python,需求不同需要在py2与py3环境下切换。查阅了相关资料,有些同学将两个环境都安装,然后更改环境变量别名,比如python2 或python3。而有些高大上的直接使用conda(或anconda)python环境管理工具。前者需要手动更改python,pip名基本上对原程序进行了修改,而后者使用工具显得有些重。经查阅python3.3+ 已经提供了一个简单的启动器来切...原创 2018-03-30 09:25:55 · 1164 阅读 · 0 评论