<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[python学习教程]]></title><description><![CDATA[python学习教程]]></description><link>https://blog.youkuaiyun.com/adrry01</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; adrry01]]></copyright><item><title><![CDATA[python基础教程目录，从入门到上手的]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103475937</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103475937</guid><author>adrry01</author><pubDate>Tue, 10 Dec 2019 16:09:41 +0800</pubDate><description><![CDATA[因为清晰易读的风格，广泛的适用性，Python已经成为最受欢迎的编程语言之一。在TIOBE 排行榜中位居第四，是名副其实的人工智能第一语言。
风靡的另一个原因是，Python有非常多的第三方库。比如用于WEB开发的Django/Flask，用于科学计算的 Numpy/Scipy，用于机器学习的 Scikit-Learn，用于运维的 Supervisor/Fabric，用于网络爬虫的 Beautif...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] MongoDB存储]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103463480</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103463480</guid><author>adrry01</author><pubDate>Mon, 09 Dec 2019 19:34:04 +0800</pubDate><description><![CDATA[点击蓝色“程序员学府"关注我丫
加个“星标”，每天一起快乐的学习
MongoDB是由C++语言编写的非关系型数据库，是一个基于分布式文件存储的开源数据库系统，其内容存储形式类似JSON对象，它的字段值可以包含其他文档、数组及文档数组，非常灵活。在这一节中，我们就来看看Python 3下MongoDB的存储操作。

准备工作
在开始之前，请确保已经安装好了MongoDB并启动了其服务，并且安装好了P...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战]使用代理爬取微信公众号文章]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103448865</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103448865</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 20:56:03 +0800</pubDate><description><![CDATA[本节目标
我们的主要目标是利用代理爬取微信公众号的文章，提取正文、发表日期、公众号等内容，爬取来源是搜狗微信，其链接为 http://weixin.sogou.com/，然后把爬取结果保存到 MySQL 数据库。


准备工作
首先需要准备并正常运行前文中所介绍的代理池。这里需要用的 Python 库有 aiohttp、requests、redis-py、pyquery、Flask、PyMySQL...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 分布式爬虫原理]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103448798</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103448798</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 20:41:08 +0800</pubDate><description><![CDATA[分布式爬虫原理
我们在前面已经实现了 Scrapy 微博爬虫，虽然爬虫是异步加多线程的，但是我们只能在一台主机上运行，所以爬取效率还是有限的，分布式爬虫则是将多台主机组合起来，共同完成一个爬取任务，这将大大提高爬取的效率。

分布式爬虫架构
在了解分布式爬虫架构之前，首先回顾一下 Scrapy 的架构，如图 13-1 所示。

Scrapy 单机爬虫中有一个本地爬取队列 Queue，这个队列是利用...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 图形验证码的识别]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103447945</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103447945</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 19:33:38 +0800</pubDate><description><![CDATA[本节我们首先来尝试识别最简单的一种验证码，图形验证码，这种验证码出现的最早，现在也很常见，一般是四位字母或者数字组成的，例如中国知网的注册页面就有类似的验证码，链接为：http://my.cnki.net/elibregister/commonRegister.aspx，页面如图 8-1 所示：

图 8-1 知网注册页面
表单的最后一项就是图形验证码，我们必须完全输入正确图中的字符才可以完成注册...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 极验滑动验证码的识别]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103447507</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103447507</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 19:27:10 +0800</pubDate><description><![CDATA[上节我们了解了图形验证码的识别，简单的图形验证码我们可以直接利用 Tesserocr 来识别，但是近几年又出现了一些新型验证码，如滑动验证码，比较有代表性的就是极验验证码，它需要拖动拼合滑块才可以完成验证，相对图形验证码来说识别难度上升了几个等级，本节来讲解下极验验证码的识别过程。


本节目标
本节我们的目标是用程序来识别并通过极验验证码的验证，其步骤有分析识别思路、识别缺口位置、生成滑块拖动路...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 微博宫格验证码的识别]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103447385</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103447385</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 18:42:17 +0800</pubDate><description><![CDATA[本节我们来介绍一下新浪微博宫格验证码的识别，此验证码是一种新型交互式验证码，每个宫格之间会有一条指示连线，指示了我们应该的滑动轨迹，我们需要按照滑动轨迹依次从起始宫格一直滑动到终止宫格才可以完成验证，如图 8-24 所示：

图 8-24 验证码示例
鼠标滑动后的轨迹会以黄色的连线来标识，如图 8-25 所示：

图 8-25 滑动过程
我们可以访问新浪微博移动版登录页面就可以看到如上验证码，链接...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 点触点选验证码的识别]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103446449</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103446449</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 17:01:17 +0800</pubDate><description><![CDATA[上一节我们实现了极验验证码的识别，但是除了极验其实还有另一种常见的且应用广泛的验证码，比较有代表性的就是点触验证码。
可能你对这个名字比较陌生，但是肯定见过类似的验证码，比如 12306，这就是一种典型的点触验证码，如图 8-18 所示：

我们需要直接点击图中符合要求的图，如果所有答案均正确才会验证成功，如果有一个答案错误，验证就会失败，这种验证码就可以称之为点触验证码。
另外还有一个专门提供点...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] 模拟登录并爬取 GitHub]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103446302</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103446302</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 16:51:20 +0800</pubDate><description><![CDATA[我们先以一个最简单的实例来了解模拟登录后页面的抓取过程，其原理在于模拟登录后 Cookies 的维护。

本节目标
本节将讲解以 GitHub 为例来实现模拟登录的过程，同时爬取登录后才可以访问的页面信息，如好友动态、个人信息等内容。

我们应该都听说过 GitHub，如果在我们在 Github 上关注了某些人，在登录之后就会看到他们最近的动态信息，比如他们最近收藏了哪个 Repository，创...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战]Cookies 池的搭建]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103446181</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103446181</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 16:40:37 +0800</pubDate><description><![CDATA[Cookies 池的搭建
很多时候，在爬取没有登录的情况下，我们也可以访问一部分页面或请求一些接口，因为毕竟网站本身需要做 SEO，不会对所有页面都设置登录限制。
但是，不登录直接爬取会有一些弊端，弊端主要有以下两点。
设置了登录限制的页面无法爬取。如某论坛设置了登录才可查看资源，某博客设置了登录才可查看全文等，这些页面都需要登录账号才可以查看和爬取。
一些页面和接口虽然可以直接请求，但是请求一旦...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] Charles 的使用]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103440272</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103440272</guid><author>adrry01</author><pubDate>Sun, 08 Dec 2019 15:53:19 +0800</pubDate><description><![CDATA[Charles 的使用
Charles 是一个网络抓包工具，我们可以用它来做 App 的抓包分析，得到 App 运行过程中发生的所有网络请求和响应内容，这就和 Web 端浏览器的开发者工具 Network 部分看到的结果一致。
相比 Fiddler 来说，Charles 的功能更强大，而且跨平台支持更好。所以我们选用 Charles 作为主要的移动端抓包工具，用于分析移动 App 的数据包，辅助完...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] Appium 的基本使用]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103440145</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103440145</guid><author>adrry01</author><pubDate>Sat, 07 Dec 2019 22:00:32 +0800</pubDate><description><![CDATA[Appium 的基本使用
Appium 是一个跨平台移动端自动化测试工具，可以非常便捷地为 iOS 和 Android 平台创建自动化测试用例。它可以模拟 App 内部的各种操作，如点击、滑动、文本输入等，只要我们手工操作的动作 Appium 都可以完成。在前面我们了解过 Selenium，它是一个网页端的自动化测试工具。Appium 实际上继承了 Selenium，Appium 也是利用 Web...]]></description><category></category></item><item><title><![CDATA[[Python3网络爬虫开发实战] Appium 爬取微信朋友圈]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103440105</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103440105</guid><author>adrry01</author><pubDate>Sat, 07 Dec 2019 21:52:16 +0800</pubDate><description><![CDATA[Appium 爬取微信朋友圈
接下来，我们将实现微信朋友圈的爬取。
如果直接用 Charles 或 mitmproxy 来监听微信朋友圈的接口数据，这是无法实现爬取的，因为数据都是被加密的。而 Appium 不同，Appium 作为一个自动化测试工具可以直接模拟 App 的操作并可以获取当前所见的内容。所以只要 App 显示了内容，我们就可以用 Appium 抓取下来。


本节目标
本节我们以 ...]]></description><category></category></item><item><title><![CDATA[Python tuple(元组)]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430965</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430965</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 23:15:27 +0800</pubDate><description><![CDATA[元组（tuple）跟列表（list）非常相似，二者之间的差异就是元组不可改变，list是可以改变的
创建元组(tuple)
跟list的中括号不同，元组用圆括号把所有项括起来，元素之间用逗号分隔：
In [15]: mytuple = ('a', 'b', 3, 8.9, [1,2])

In [16]: mytuple
Out[16]: ('a', 'b', 3, 8.9, [1, 2])

I...]]></description><category></category></item><item><title><![CDATA[Python list(列表)]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430924</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430924</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 23:09:29 +0800</pubDate><description><![CDATA[Python的基本数据类型有整数，浮点数，布尔，字符串，它们是最基本的数据。在实际编程中，我们要经常组织由很多基本数据组成的集合，这些集合的不同组织方式就是：数据结构，今天讲的是数据结构中的Python list(列表)。数据结构就是一些数据组合得到的“复合”数据类型。	
Python内置的数据结构有：
列表(list)
元组(tuple)
字典(dict)
集合(set)
在Python语言中，...]]></description><category></category></item><item><title><![CDATA[Python的运算对象、运算符、表达式和语句]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430710</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430710</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 23:03:54 +0800</pubDate><description><![CDATA[编程的本质就是数据和运算，数据由基本数据类型、数据结构来表示，运算就是对这些数据的各种操作，基本的加减乘除、是非判断、流程控制等等。这些操作就是今天我们要讲的运算符、表达式和语句。
前面我们学习Python的基本语法时，讲到了Python程序的行的概念，这个行再细分就是运算符(Operators)、运算对象(Operands)、表达式(Express)、语句(Statements)。
提示：运算和...]]></description><category></category></item><item><title><![CDATA[Python基本数据类型]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430480</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430480</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 22:20:46 +0800</pubDate><description><![CDATA[计算机的本质就是计算，在其内部是0和1的比特位的变化，对外表现就是数据的变化。那么，计算机都能处理什么数据呢？本质上，数据都是以字节（Byte）存储的，表现上看，它们就是整数、浮点数和字符串等。Python的基本数据类型也不外乎于此
整数和浮点数就跟数学中的一样，而字符串就是各种字符的组合。
数值类型：整数(int)、浮点数(float)
int和float是Python中为整数和浮点数保留的关键...]]></description><category></category></item><item><title><![CDATA[Python 集成开发环境（IDE）: VS Code]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430439</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430439</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 22:10:14 +0800</pubDate><description><![CDATA[工欲善其事必先利其器”中的“器”，对于一个程序员来说就是编辑器、编译器（或解释器）、调试器等工具，这些器具（工具）帮助我们快速的写出程序，运行程序和解决其中的bug。这些工具的集合就构成了我们的集成开发环境。
前面，我们已经介绍了Python解释器，官方的Python shell已经更好用的IPython shell。
编辑器是什么
编辑器这个名字对于初来乍到的小猿们来说听起来可能很神秘，但是我们...]]></description><category></category></item><item><title><![CDATA[Python 库/模块的pip安装和IPython的使用]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430395</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430395</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 22:05:39 +0800</pubDate><description><![CDATA[接着上节继续讲一讲Python交互式解释器（也叫作：Python shell）。除了官方的Python shell，其实还有更好的，它们就是IPython、bpython、ptpython。
IPython的安装和使用
它们比官方的更高级、更人性化、更方便。老猿我最常用（取代官方）的是ipython，它的好处以后再详谈，让我最喜欢的两个特点是：
Tab键补全
模块名后面输入点（.）后按Tab键，就...]]></description><category></category></item><item><title><![CDATA[Python 基本语法]]></title><link>https://blog.youkuaiyun.com/adrry01/article/details/103430330</link><guid>https://blog.youkuaiyun.com/adrry01/article/details/103430330</guid><author>adrry01</author><pubDate>Fri, 06 Dec 2019 22:02:20 +0800</pubDate><description><![CDATA[Python 作为一门计算机语言自然有它自己的语法规则，就像英语、汉语都有自己的语法规则一样。Python的语法以简洁著称，它以行、缩进、注释、标识符、保留关键字等几方面来规定了自己的语法。
下面我们先看一段Python代码：、

Python 的行
在Python里面，行分为逻辑行和物理行。物理行就是以行结束符(\n)结尾算作一行，通常一个物理行也就是一个逻辑行。但有时候，一个逻辑行可以包含多个...]]></description><category></category></item></channel></rss>