为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python编写爬虫,当然至少得了解Python基本的语法

标签:
Python

可能你已经猜出来了,没错,每个 Pythoneer 都知道的彩蛋,在交互式命令行输入import this,会有一段 Python 之禅格言,作者是内核开发者 Tim Peters, Guido 叔的 Python 语言设计指导原则浓缩为了 19 条开发哲学。

这段加密文本并不是我故弄玄虚,而是this 模块中的源代码,使用下面这个算法就可以解密出来

https://github.com/python/cpython/blob/master/Lib/this.py

一、基础知识

使用Python编写爬虫,当然至少得了解Python基本的语法,了解:

基本数据结构

数据类型

控制流

函数的使用

模块的使用

不需要过多过深的Python知识,仅此而已。

我刚整理了一套2018最新的0基础入门和进阶教程,无私分享,获取方法:加q u n 227-435-450 即可获取,内附:开发工具和安装包,以及系统学习路线图。

二、开发环境、

操作系统:Windows 7

Python版本:Python 3.4

代码编辑运行环境:个人推荐PyCharm社区版,当然,Python自带的IDLE也行,Notepad++亦可,只要自己使用得习惯。

三、第三方依赖库

requests:一个方便、简洁、高效且人性化的HTTP请求库

BeautifulSoup:HTML解析库

pymongo:MongoDB的Python封装模块

selenium:一个Web自动化测试框架,用于模拟登录和获取JS动态数据

pytesseract:一个OCR识别模块,用于验证码识别

Pillow:Python图像处理模块

四、第三方库安装:

上面列出的第三方模块大多可以通过pip install ××的方式直接安装,部分模块安装方式不一样,下面一一演示:

requests

pip install requests

webp

BeautifulSoup

pip install bs4

webp

pymongo

pip install pymongo

webp

selenium

pip install selenium

webp

Pillow

1、打开http://www.lfd.uci.edu/~gohlke/pythonlibs/

2、搜索找到“pillow”

3、根据自己系统的版本选择对应的下载包

webp

4、安装

pip install Pillow‑4.0.0‑cp34‑cp34m‑win32.whl

webp

pytesseract

1、pip install pytesseract

2、安装tesseract

下载并安装:https://tesseract-ocr.googlecode.com/files/tesseract-ocr-setup-3.02.02.exe

这样,我们的准备工作就基本完成,如果有另外的需求,在实战中再进行安装,接下来就可以实战Python爬虫了。

webp

文末知识点摘要:《import this》背后的故事

大家猜猜下面这段文本是什么意思,看起来好像挺熟悉的。

webp

可能你已经猜出来了,没错,每个 Pythoneer 都知道的彩蛋,在交互式命令行输入import this,会有一段 Python 之禅格言,作者是内核开发者 Tim Peters, Guido 叔的 Python 语言设计指导原则浓缩为了 19 条开发哲学。

这段加密文本并不是我故弄玄虚,而是this 模块中的源代码,使用下面这个算法就可以解密出来


d = {}

for c in (65, 97):

for i in range(26):

d[chr(i+c)] = chr((i+13) % 26 + c)

print("".join([d.get(c, c) for c in s]))

这究竟是个什么算法?

>>> chr(97)

'a'

>>> chr(65)

'A'

65 是大写 A 的十进制表示法,97 是小写 a 的十进制表示法。字典 d 最终会构成这样一个映射表

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

| |

NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm

26个字母从A映射到N、B映射到O、依此类推到M映射到Z,然后反转,N映射到A、O映射到B、Z映射到M,26个小写字母也是同样的机制,这就是 ROT13 密码算法。以后要是有面试官要你徒手写个 ROT 算法,你要能很快想起来。

webp

ROT13(回转13位)是一种替换式密码,属于对称加密,加密和解密同一套算法,而且密钥都一样,它是凯撒加密的一种变体。一段文字按照字母顺序只需把当前字母用13位之后的对应字母进行替代,超过第13位的字母(从N开始)则重新绕回到字母表的开头即可。而对于非字母字符还是保持原样不变。于是,文章开头的文本经过 ROT13 转换,就是我们平常最熟悉的 Python 之禅:

webp

关于import this 这个彩蛋的来由以及 《The Zen of Python》 的历史故事,是发生在一次 Pycon 大会上,主办方想给大会定一个 Slogan 印在T恤上,然后大家奇思异想,最后几百候选名单出选出了 import this,紧接着这个彩蛋放在了 Python 2.2.1 发布。



作者:小天真_5eeb
链接:https://www.jianshu.com/p/f75e58891d2d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消