勤学思培训网RMOYRF
  • 终于明了python学习心得

    随着Python的进一步发展,越来越多的现成的Python的机器学习的算法已经发布出来。为了可以更好地运用这些机器学习的算法,我们有必要对Python有个初步的了解。以下是小编为你整理的python学习心得

    Python不同层级的语句之间间隔四个空格缩进, indentation。Python有比较严格的语法结构,需要不同层级的代码之间相差四个空格,不然就不能编译通过。

    Python中输出到console是用print,然后接收键盘输入是用raw_input(),示例name = raw_input(What's your name?);


    [图片0]

    写完程序之后,要用不同的输入来测试写的程序是否正确。

    变量Variables,用于存储后续可能用到的数据

    数据类型Data Type,包含数值和布尔值

    注释,当行注释用#,多行注释"""开始"""结束,如下图所示

    基本数学运算符,+,-,*,/

    指数运算符,**

    取余运算符,%

    如何选择版本

    Python 和 通常已经内置在现代 Linux 发行版中,你可以立刻使用它。你可以终端模拟器中输入 "python" 或 "python3"来进入 Python shell, 并输入 "quit()" 退出。

    如果你希望在键入 "python" 时使用 Python 而不是 ,你可以像下面一样更改对应的符号链接:

    顺便一提,有一点需要注意:尽管 Python 仍旧被使用,但它并不会被积极维护。因此,你可能要考虑像上面指示的那样来切换到 。 和 的语法有一些不同,我们会在这个系列文章中使用后者。

    另一个在 Linux 中使用 Python 的方法是通过 IDLE (Python 集成开发环境),这是一个为编写 Python 代码而生的图形用户界面。在安装它之前,你最好查看一下适用于你的 Linux 发行版的 IDLE 可用版本。

    然后,你可以像下面一样安装它:

    $ sudo aptitude install idle-

    安装成功后,你会看到 IDLE 的运行画面。它很像 Python shell,但是你可以用它做更多 Python shell 做不了的事。

    集合的与操作

    我们可以看到集合输出的效果会有一个set表示。

    aaa = [1,2,3]bbb = [3,4,5,6]a_a = set(aaa)b_b = set(bbb)

    集合中并集的表示:

    k = a_a | b_b

    print k


    [图片1]

    使用一个| 线表示 ,求出2个数的并集。

    vip = (b_b) #并集print vip

    集合中交集的表示 使用 ^ 表示求交集

    k = a_a ^ b_b #交集合

    print ((b_b)) # 求交!!!!

    集合中求出不同项目的结果

    print ((b_b))

    需要单独说明的是求的是自己的和他人的不同,不是两者一起的不同

    掌握常见的反爬策略与反爬处理策略

    反爬,是相对于网站方来说的,对方不想给你爬他站点的数据,所以进行了一些限制,这就是反爬。

    反爬处理,是相对于爬虫方来说的,在对方进行了反爬策略之后,你还想爬相应的数据,就需要有相应的攻克手段,这个时候,就需要进行反爬处理。

    事实上,反爬以及反爬处理都有一些基本的套路,万变不离其宗,这些后面作者会具体提到,感兴趣的可以关注。

    常见的反爬策略主要有:

    IP限制

    UA限制

    cookie限制

    资源随机化存储

    动态加载技术

    对应的反爬处理手段主要有:

    IP代理池技术

    用户代理池技术

    cookie保存与处理

    自动触发技术

    抓包分析技术+自动触发技术

    这些大家在此先有一个基本的思路印象即可,后面都会具体通过实战案例去介绍。

    掌握PhantomJS、Selenium等工具的使用

    有一些站点,通过常规的爬虫很难去进行爬取,这个时候,你需要借助一些工具模块进行,比如PhantomJS、Selenium等,所以,你还需要掌握PhantomJS、Selenium等工具的常规使用方法。

    掌握分布式爬虫技术与数据去重技术

    如果你已经学习或者研究到到了这里,那么恭喜你,相信现在你爬任何网站都已经不是问题了,反爬对你来说也只是一道形同虚设的墙而已了。

    但是,如果要爬取的资源非常非常多,靠一个单机爬虫去跑,仍然无法达到你的目的,因为太慢了。

    所以,这个时候,你还应当掌握一种技术,就是分布式爬虫技术,分布式爬虫的架构手段有很多,你可以依据真实的服务器集群进行,也可以依据虚拟化的多台服务器进行,你可以采用urllib+redis分布式架构手段,也可以采用Scrapy+redis架构手段,都没关系,关键是,你可以将爬虫任务部署到多台服务器中就OK。

    至于数据去重技术,简单来说,目的就是要去除重复数据,如果数据量小,直接采用数据库的数据约束进行实现,如果数据量很大,建议采用布隆过滤器实现数据去重即可,布隆过滤器的实现在Python中也是不难的。