php 循环抓取网页内容 DA Techie | 一条“蟒蛇”的故事
优采云 发布时间: 2022-07-18 02:19php 循环抓取网页内容 DA Techie | 一条“蟒蛇”的故事
哈哈
第一个故事
What is Python?
白
1
What?
今天给大家介绍的是一只快速灵活的大蟒蛇一种编程语言Python。
引用官方的说法,Python(意为“蟒蛇”)是一种“解释型的、面向对象的、带有动态语义的高级程序设计语言”。
正如我们熟悉的C、C++或是Java一样,这也是一门编程语言。我们知道世界上还有很多编程语言,例如正常的语言C#、Ruby、PHP,也有神奇的中文编程语言如易语言、中蟒(中文Python的意思)。
程序猿的创造力是无穷的,如果熟悉了编译原理,就可以自己创造属于自己的语言。正如Guido挚爱的电视剧是Monty Python’s Flying Circus,他给自己的语言命名为Python。
从Python出现到今天,它的框架已经确立。Python语言以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收。Python的生态系统开始拓展到第三方包。这些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,将Python升级成了物种丰富的热带雨林。
Python有哪些用途呢?
①Web开发(如Django、YouTube……)
②视频游戏开发(如EVE)
③桌面GUI
④软件开发(如Blender)
⑤人工智能和深度学习(如TensorFlow、Caffe等架构。
Python如今竟大行其道?
2017年7月20日,IEEE Spectrum 发布了第四届顶级编程语言交互排行榜。Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名。
第二个故事
为什么使用Python
优劣分析篇
输12
1
易于学习
如果你听到周围有人说“一夜速成”“三行代码”“最新操作” ,那么他十有八成是在学习Python,因为Python的易于掌握,许多非信息技术专业的学科直接以Python作为入门语言。
对于学习了C、C++或Java的同学来说,Python就更易于掌握,Python的数据类型、操作语句、对象的使用、模块(库,相当于C++中的头文件)和文件操作都有很大的共通性。作为一门解释型的语言,Python甚至看上去更像伪码,接近人的自然表达,因此很容易上手。
例如,文件的读取:
2
优雅简洁
Python的设计哲学是“优雅”、“明确”、“简单”。Python对于语句控制范围的方法是缩进,取代了大括号和分号(在C++里巧妙使用分号和大括号,可以创造混乱或奇妙的代码图案),因此,Python代码相对整洁美观。因为没有分号,换行时要在结尾加上\。
同时,Python中可以直接使用变量,无需进行声明。另外,Python中一切皆对象(恩?对象?目光突然闪烁),因此一切都可以赋值给变量,或作为参数传递给函数。因为Python具有对象回收机制,所以在编写代码的过程中无需考虑释放内存空间。
关于所说的缩进:
3
充足的模块
Python语言的核心十分强大,同时还提供了很多有趣的工具,这些就是Python的模块,最常用的是它的标准库(standard library),同时还有一些外来的模块。
而且任何Python程序都可以作为模块导入,所以不仅可以使用Python的自带电池,还可以自己发电。
在使用模块时,要使用import语句,同时注意import-only-once,否则容易出现两个模块相互导入,那么就会无限循环。
以下是一些常用模块:
4
机器学习方面
Python在科学运算,数据整理还有出图像结果的模块有:
numpy, pandas, matplotlib。
在机器学习方面,scikit learn 是汇集了众多机器学习方法的模块,它支持各种各样的机器学习方法。
在神经网络方面有著名的tensorflow等等,以及caffe架构。
(图源)
5
胶水语言
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
6
物联网
Python随着物联网技术的普及将会进一步发展,目前Rasp-berry Pi等新型平台已经将其作为开发基础。
7
一些不足之处
①速度:作为一门解释型语言,其速度往往低于编译语言。如果在大型工程中核心代码需要考虑效率的提高,可以用C语言改写,Python对此兼容性很好。
②移动端:Python在移动计算领域表现不佳,目前利用Python开发的移动应用非常罕见。
③其他:例如没有指针;属于动态类语言,设计上存在一些问题;……
输入
第三个故事
Python
让我们开始飞起来
这时候,如果你的手头有台电脑,那么就可以开始和世界打个招呼了。
1、搭建环境:
①Windows:
访问。点击download,下载Windows版本的安装文件。
②Linux/Unix/Mac OS X:
打开终端,输入python,按下回车
③希望使用新版本的Python:
访问,根据系统下载相应的安装软件。
2、hello world:
来和世界打个招呼吧!
>>>print "hello world"
3、我们还可以试试字符串操作:
这时我们不能直接在终端写程序,因为Python不会将多行的语句编译,于是我们需要使用sublime或者Python自带的IDLE。以MacOS为例,可以在终端输入IDLE打开代码编辑器。
我们可以通过input( )读取输入值。然后对字符串进行简单的操作。
例如我们可以拼接:
'The '+'man '+'who '+'changed '+'China.' = 'The man who changed China.'
我们还可以做乘法:
'six ' * 3 = 'six six six '
我们还可以进行分割:
a = 'The man'
a[0:2] = 'Th' a[4] = m
也可以进行查找:
'who' in 'The man who changed China.'=True.
4、来试一试字典Dict的操作
Python有独特的字典结构,通过哈希表(hash table)实现。相当于说,字典是一个数组,而数组的索引是键经过哈希函数处理后得到的。哈希函数的目的是使键均匀地分布在数组中。由于不同的键可能具有相同的哈希值,即可能出现冲突,高级的哈希函数能够使冲突数目最小化。
这个字典的实现可以通过:
a = {'年轻':'simple','鸭嘴笔':'engineer','教授':'report'}
修改元素:a['年轻'] = young
添加元素:a[new key] = value
第四个故事
关于Python的数据类型
和一些拓展的应用
输12
Python的数据类型有:
基本类型:
整数、浮点数、布尔型……
顾名思义,这是基本的、熟悉的类型。变量可以直接使用,不需要声明。例如:
a = 666
print a
结果: 666
集合类型:
列表(list)、元组(tuple)、字符串:这是属于序列的典型结构,他们包含的元素都进行了编号(从0开始)。其中,列表是可变的,元组和字符串是不可变的(注意,这和C、C++是不同的)。通过分片的操作可以访问序列的一部分。
例如:a = [1,2,3,4,5] 就是一个list。
a.insert(3,6) 就可以在第3个位置插入6。
a[2]=8 就可以对list元素进行修改。
字典(dict):当索引不好用时,我们可以自己对数据建立索引,例如前文的例子。
此外,还有集合(set)等类型。
拓展应用:
①图形用户界面:可以参看wxPython(可以跨平台)、Tkinter(TK平台)或PythonWin(只能在Windows使用)、PyQt(Qt平台)等平台。
②数据库支持:可以参看PySQLite。
③网络编程:可以使用socket模块建立小型的服务器和客户机。
④ Web方面:例如进行屏幕抓取,CGI和Web服务开发。屏幕抓取是程序下载网页并从中提取信息的过程,在这里如果我们需要从动态的网页提取信息,那么这项技术就会十分有用,比如说提取一下验证的二维码,那么……
例如,我需要一个网页的所有内容:
from urllib2 import urlopen
doc = urlopen("").read()
print doc
⑤深度学习方面:例如minst(数字图像识别)的代码。
可以参看:
输入
第五个故事
结束啦
此处只是
参考文献部分
参考文献:
《Python基础教程》【挪】Magnus Lie Hetland
Introduction to Python 【THU】地精工程师
更多内容可以在知乎和github上找到,感兴趣的同学可以到github上进行happy的探索。
THU自动化系学生科协(ASTA)信息推送平台,搭建科研之路,带你走向人生巅峰