07 2019 档案
摘要:retrying模块的学习 我们在写爬虫的过程中,经常遇到爬取失败的情况,这个时候我们一般会通过try块去进行重试,但是每次都写那么一堆try块,真的是太麻烦,所以今天就来说一个比较pythonic的模块,retrying. 安装 retring模块的安装很简单直接用匹配安装即可。 pip inst
阅读全文
摘要:本文目录 一 前言 二 typing模块的作用 三 typing模块的常用方式 三 typing常用的类型 四 python天生支持多态,迭代器中的元素可能多种 回到目录 一 前言 Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在
阅读全文
摘要:Python的深浅拷贝以及应用场景 深浅拷贝用法来自copy模块。 导入模块:import copy 浅拷贝:copy.copy 深拷贝:copy.deepcopy 对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。 字面理解:浅拷贝指仅仅拷贝数据集合的第一层数
阅读全文
摘要:mac下安装redis redis的介绍这里就不多说了,请参加博客windows下的mac安装,下面就直奔主题. 一 redis安装 1.首先,redis的默认端口为6379 2.下载mac版redis安装包,下载地址https://redis.io/download,我下载的版本是4.0.14 3
阅读全文
摘要:面试题 一 前戏: 闭包延迟绑定问题 请写出以下的代码执行结果,并解释。 上述代码相当于以下这段代码。 为啥结果和我们意向的不一样呢,是因为循环内的函数,在执行前变量“i”都会延迟绑定,因为函数在执行之前并不会立即绑定变量i,而是等到最终for循环结束后执行内部函数才会绑定最后的i。所以才会得到我们
阅读全文
摘要:""" 作者: Tank 创建时间: 2019.07.10 19:05 """ user_info = { 'user': None, 'pwd': None, 'balance': None } import os # 注册 while True: user = input('user:') if
阅读全文
摘要:尽量用异常来表示特殊情况,而不要返回None
阅读全文
摘要:合理利用try/except/else/finally结构中的每个代码块
阅读全文
摘要:不要在for和while循环后面写else
阅读全文
摘要:用生成器表达式来改写数据量较大的列表推导式
阅读全文
摘要:尽量用enumerate取代range
阅读全文
摘要:用列表推导式取代map和filter
阅读全文
摘要:不要使用含有两个以上表达式的列表推到式
阅读全文
摘要:单次切片,不要同时指定start、end、stride
阅读全文
摘要:切割序列类型的方法 Python提供了列表切片的方法。这种切片(slice)操作,使开发者能够轻易地访问列表中某些元素。最简单的用法,就是对内置的list、str、bytes进行切割。切割操作还可以眼神到实现了__getitem__和__setitem__这两个类方法上。切割操作的基本写法是some
阅读全文
摘要:用辅助函数取代复杂的表达式 Python的语法非常精简,很容易就能用一行表达式来实现许多逻辑。 例如,要从URL中解码查看字符串。在下列所举的查询字符串中,每个参数都可以表示一个整数值: 1、parse_qs 2、复杂表达式 or 3、三元表达式 上面我们使用or这种表达式语法虽然正确,但却很难阅读
阅读全文
摘要:统一采用一种编码形式 在编写Python程序的时候,一定要把编码和解码的操作放在外界来做。程序的核心部分应该使用Unicode字符类型,而且不要对字符的编码做任何设置。我们希望让用户无论输入的是str还是bytes类型,都保证返回统一的字符编码形式。 这样做既可以令程序接收多种类型的文本编码,又可以
阅读全文
摘要:遵循PEP8风格 在编写python代码的时候我们应该采用统一的风格来编写代码,可以使代码更加容易读懂。采用和其他程序员统一的编码风格来写代码,也可以使项目更利于多人协作开发。即便代码只有你自己能看懂,也得遵循这套风格,可以令自己后续继续二次开发的时候更容易看懂自己的代码。 一 空白与缩进 在Pyt
阅读全文
摘要:<!-- flowchart 箭头图标 勿删 --> itemdetail PEP 8 Title Style Guide for Python Code Version c451868df657 Last-Modified 2016-06-08 10:43:53 -0400 (Wed, 08 Ju
阅读全文
摘要:本文目录 一 传统的开发模式 二 前后端分离的开发模式 三 前后分离的优点 四 JWT实现用户认证 五 跨域问题解决 回到目录 一 传统的开发模式 前后端分离前我们的开发协作模式一般是这样的: 前端写好静态的HTML页面交付给后端开发。静态页面可以本地开发,也无需考虑业务逻辑只需要实现View即可。
阅读全文
摘要:Scrapy笔记12- 抓取动态网站 Scrapy笔记12- 抓取动态网站 前面我们介绍的都是去抓取静态的网站页面,也就是说我们打开某个链接,它的内容全部呈现出来。 但是如今的互联网大部分的web页面都是动态的,经常逛的网站例如京东、淘宝等,商品列表都是js,并有Ajax渲染, 下载某个链接得到的页
阅读全文
摘要:Scrapy笔记11- 模拟登录 Scrapy笔记11- 模拟登录 有时候爬取网站的时候需要登录,在Scrapy中可以通过模拟登录保存cookie后再去爬取相应的页面。这里我通过登录github然后爬取自己的issue列表来演示下整个原理。 要想实现登录就需要表单提交,先通过浏览器访问github的
阅读全文
摘要:Scrapy笔记10- 动态配置爬虫 Scrapy笔记10- 动态配置爬虫 有很多时候我们需要从多个网站爬取所需要的数据,比如我们想爬取多个网站的新闻,将其存储到数据库同一个表中。我们是不是要对每个网站都得去定义一个Spider类呢? 其实不需要,我们可以通过维护一个规则配置表或者一个规则配置文件来
阅读全文
摘要:Scrapy笔记09- 部署 Scrapy笔记09- 部署 本篇主要介绍两种部署爬虫的方案。如果仅仅在开发调试的时候在本地部署跑起来是很容易的,不过要是生产环境,爬虫任务量大,并且持续时间长,那么还是建议使用专业的部署方法。主要是两种方案: Scrapyd 开源方案 Scrapy Cloud 云方案
阅读全文
摘要:Scrapy笔记08- 文件与图片 Scrapy笔记08- 文件与图片 Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件。 通常来说你会选择使用Files Pipeline或Images Pipeline。 这两个管道都实现了: 避免重复下载 可以指定下载后
阅读全文
摘要:Scrapy笔记07- 内置服务 Scrapy笔记07- 内置服务 Scrapy使用Python内置的的日志系统来记录事件日志。 日志配置 LOG_ENABLED = true LOG_ENCODING = "utf-8" LOG_LEVEL = logging.INFO LOG_FILE = "l
阅读全文
摘要:Scrapy笔记06- Item Pipeline Scrapy笔记06- Item Pipeline 当一个item被蜘蛛爬取到之后会被发送给Item Pipeline,然后多个组件按照顺序处理这个item。 每个Item Pipeline组件其实就是一个实现了一个简单方法的Python类。他们接
阅读全文
摘要:Scrapy笔记05- Item详解 Item是保存结构数据的地方,Scrapy可以将解析结果以字典形式返回,但是Python中字典缺少结构,在大型爬虫系统中很不方便。 Scrapy笔记05- Item详解 Item是保存结构数据的地方,Scrapy可以将解析结果以字典形式返回,但是Python中字
阅读全文
摘要:Scrapy笔记04- Selector详解 Scrapy笔记04- Selector详解 在你爬取网页的时候,最普遍的事情就是在页面源码中提取需要的数据,我们有几个库可以帮你完成这个任务: BeautifulSoup是python中一个非常流行的抓取库, 它还能合理的处理错误格式的标签,但是有一个
阅读全文
摘要:Scrapy笔记03- Spider详解 Scrapy笔记03- Spider详解 Spider是爬虫框架的核心,爬取流程如下: 先初始化请求URL列表,并指定下载后处理response的回调函数。初次请求URL通过start_urls指定,调用start_requests()产生Request对象
阅读全文
摘要:Scrapy笔记02- 完整示例 Scrapy笔记02- 完整示例 这篇文章我们通过一个比较完整的例子来教你使用Scrapy,我选择爬取虎嗅网首页的新闻列表。 这里我们将完成如下几个步骤: 创建一个新的Scrapy工程 定义你所需要要抽取的Item对象 编写一个spider来爬取某个网站并提取出所有
阅读全文
摘要:Scrapy笔记01- 入门篇 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取(更确切来说,网络抓取)所设计的, 也可以应用在获取API所返回的数据(比如Web Services)或者通用的网
阅读全文
摘要:Python网络爬虫Scrapy框架研究 Scrapy1.0教程 Scrapy笔记(1)- 入门篇 Scrapy笔记(2)- 完整示例 Scrapy笔记(3)- Spider详解 Scrapy笔记(4)- Selector详解 Scrapy笔记(5)- Item详解 Scrapy笔记(6)- Ite
阅读全文