Category: Python / Wxpython

Python:logging模块详解, logging日志功能, logging实例

整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置。 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,是很容易排查的。但程序开发完成之后,我们会将它部署到生产环境中去,这时候代码相当于是在一个黑盒环境下运行的,我们只能看到其运行的效果,是不能直接看到代码运行过程中每一步的状态的。在这个环境下,运行过程中难免会在某个地方出现问题,甚至这个问题可能是我们开发过程中未曾遇到的问题,碰到这种情况应该怎么办? 如果我们现在只能得知当前问题的现象,而没有其他任何信息的话,如果我们想要解决掉这个问题的话,那么只能根据问题的现象来试图复现一下,然后再一步步去调试,这恐怕是很难的,很大的概率上我们是无法精准地复现这个问题的,而且 Debug 的过程也会耗费巨多的时间,这样一旦生产环境上出现了问题,修复就会变得非常棘手。但这如果我们当时有做日志记录的话,不论是正常运行还是出现报错,都有相关的时间记录,状态记录,错误记录等,那么这样我们就可以方便地追踪到在当时的运行过程中出现了怎样的状况,从而可以快速排查问题。 因此,日志记录是非常有必要的,任何一款软件如果没有标准的日志记录,都不能算作一个合格的软件。作为开发者,我们需要重视并做好日志记录过程。 日志记录的流程框架… Read More

Python 网络爬虫:Urllib库的基本使用, requests不建议使用?

Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。 Python3不像2x中酷虎的和服务器模块结构散乱,Python3中把这些打包成为了2个包,就是http与urllib,详解如下:   http会处理所有客户端–服务器http请求的具体细节,其中: (1)client会处理客户端的部分 (2)server会协助你编写Python web服务器程序 (3)cookies和cookiejar会处理cookie,cookie可以在请求中存储数据 urllib是基于http的高层库,它有以下三个主要功能: (1)request处理客户端的请求… Read More

Python 网络爬虫:Python解析html, Beautiful Soup的用法

我们还有一个更强大的工具,叫Beautiful Soup,有了它我们可以很方便地提取出HTML或XML标签中的内容,实在是方便,这一节就让我们一起来感受一下Beautiful Soup的强大吧。 1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。 Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。 废话不多说,我们来试一下吧~ 2. Beautiful… Read More

Python 网络爬虫:解析JSON, 获取JS动态内容—爬取今日头条, 抓取json内容

有一些网站的内容由前端的JS动态生成,由于呈现在网页上的内容是由JS生成而来,我们能够在浏览器上看得到,但是在HTML源码中却发现不了。比如今日头条: 浏览器呈现的网页是这样的:     查看源码,却是这样的:     网页的新闻在HTML源码中一条都找不到,全是由JS动态生成加载。 遇到这种情况,我们应该如何对网页进行爬取呢?有两种方法: 1、从网页响应中找到JS脚本返回的JSON数据;2、使用Selenium对网页进行模拟访问 在此只对第一种方法作介绍,关于Selenium的使用,后面有专门的一篇。 一、从网页响应中找到JS脚本返回的JSON数据 即使网页内容是由JS动态生成加载的,JS也需要对某个接口进行调用,并根据接口返回的JSON数据再进行加载和渲染。 所以我们可以找到JS调用的数据接口,从数据接口中找到网页中最后呈现的数据。 就以今日头条为例来演示: 1、从找到JS请求的数据接口 F12打开网页调试工具  … Read More

Python 网络爬虫:利用requests模拟登录实例讲解, 手把手教你利用session/cookie模拟登录

  1. 了解cookie和session 首先一定要先了解到cookie和session是什么,这是后面理解网站交互,模拟用户登录的基础。   1.1. 无状态协议:Http 如上图所示,HTTP协议 是无状态的协议,用户浏览服务器上的内容,只需要发送页面请求,服务器返回内容。对于服务器来说,并不关心,也并不知道是哪个用户的请求。对于一般浏览性的网页来说,没有任何问题。但是,现在很多的网站,是需要用户登录的。以淘宝为例:比如说某个用户想购买一个产品,当点击 “ 购买按钮 ” 时,由于HTTP协议 是无状态的,那对于淘宝来说,就不知道是哪个用户操作的。为了实现这种用户标记,服务器就采用了cookie这种机制来识别具体是哪一个用户的访问。   1.2. 了解cookie 如图,为了实现用户标记,在Http无状态请求的基础之上,我们需要在请求中携带一些用户信息(比如用户名之类,这些信息是服务器发送到本地浏览器的,但是服务器并不存储这些信息),这就是cookie机制。如下图所示,在登录马蜂窝网站之后,就可以看到浏览器已经保存了一些cookie信息(chrome浏览器为例):… Read More

Python 3 之Requests高级用法: Python爬虫利器Requests库的用法, Requests库操作session会话, Requests库操作SSL 证书验证

高级用法 本篇文档涵盖了 Requests 的一些高级特性。   会话对象 会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能。所以如果你向同一主机发送多个请求,底层的 TCP 连接将会被重用,从而带来显著的性能提升。… Read More

AI机器学习: 在 macOS 上安装谷歌的TensorFlow, machine learning, 人工智能学习

在 macOS 上安装 TensorFlow 本指南将介绍如何在 macOS 上安装 TensorFlow。虽然这些指令可能也适用于其他 macOS 版本,但我们只在满足以下要求的计算机上对这些指令进行过测试(并仅支持这些指令): macOS 10.12.6 (Sierra) 或更高版本 注意:GitHub#15933 中介绍了在低于 macOS 10.12.6… Read More

AI机器学习: 在 Windows 上安装谷歌的TensorFlow, machine learning, 人工智能学习

在 Windows 上安装 TensorFlow 本指南将介绍如何在 Windows 上安装 TensorFlow。虽然这些说明可能也适用于其他 Windows 版本,但我们只在满足以下要求的计算机上验证过这些说明(而且我们只支持在此类计算机上按这些说明操作): 64 位、x86 台式机或笔记本电脑 Windows 7 或更高版本 确定要安装哪种 TensorFlow… Read More

AI机器学习: 在 Ubuntu 上安装谷歌的TensorFlow, machine learning, 人工智能学习

  本指南将介绍如何在 Ubuntu 上安装 TensorFlow。虽然这些说明可能也适用于其他 Linux 版本,但我们只在满足以下要求的计算机上验证过这些说明(而且我们只支持在此类计算机上按这些说明操作): 64 位台式机或笔记本电脑 Ubuntu 16.04 或更高版本 确定要安装哪种 TensorFlow 您必须从以下 TensorFlow 类型中选择其一来进行安装: 仅支持… Read More