关于python网络入门的杂七杂八
假期无聊,又拾起"小猿圈"的python网络入门看一遍。
因为这次看得仔细了点,所以有些杂七杂八的东西,记录一下。
代码都是在visual studio code (VSC)里面写的和编译的,所以以此为基础。
VS Code里面的颜色
首先VS code里面的保留字符用的是紫色的(import, with, as),然后你取的各种变量名都是白色的(比如“response”变量),python原生方法都是黄色的(比如print,open),原生参数自动给个蓝色(这就是原生的好处了,各种颜色随便挑)。如果是你导入的额外的辅助类(也就是工具包啦),编译器就当成变量了,所以也给了个白色(比如开头导入的request类,不是亲爹T_T),然后因为不是本地的方法,所以像requests.get()这样的get()方法,也没有给分配黄色,也当成外来的变量对待。字符串统一给橙色。注释("#")都给了个绿色。
以上。看到花花绿绿的,就是原生的东西。白色的,一律是外来的。
居然不需要事先声明变量
然后这个东西真有意思啊。像栗子里面的reponse, page_text, url什么的,居然是随时想起来的直接反手一个的变量,也不用事先去定义类型。从其他语言转过来估计要一点时间适应(不过习惯了居然觉得很好用)不用特意跑到开头去定义新变量实在是太爽了。
标点符号不要乱用
有意思的是,每一行句子不需要用标点符号终结。所以其他语言常见的 ";", ":"什么的都不用了。用一行行来自然分割,让程序猿不需要总是关注编程以外的东西(有太多太多语言在条条框框上限制程序员了),所以python可以算是非常平滑的语言,像苹果系统一样优雅。但是一旦要用到分割,那么","就很重要了,特别是字典里面。因为平时飞习惯了,经常字典里面会漏掉逗号,还找不出原因。
在进阶的网络使用中,用request.get()的parm参数传递进入关键字,然后调用sogou.com的查询功能来查询。
从这里开始就有意思了,出现了一个"UA伪装",也就是上面的那个"headers"字符串。这个例子和上面的那个有什么不同?第一个例子只是访问了一个sogou.com主页,然后那头就把主页信息都送过来了。而这次是要用到那头的服务器来查询一个东西。调用对面的服务器帮你查询就有意思了,因为查询要调用数据库,消耗他们的系统资源,所以对面会对过来的请求多一个心眼。如果只是简简单单用第一个例子,加上个参数传递查询内容过去,那么基本上是拿不到查询结果的。对方在这种消耗他们资源的请求审查得严密,要确保是从"一个正常的浏览器"发出来的,而不是恶意软件一次触发成百上千条查询请求,让对面的服务器瘫痪(因为数据库大量读写,就没办法对其他用户的请求服务了)。因此传递参数过去的时候,加上个headers,告诉对面服务器,别开枪!我是个正常的网页访问!(而不是我们这个从python程序直接扔过去的请求)。
所以小结一下:要调用对面服务器的资源,headers必不可少(当然后面还有更多的东西要加进去,让对面相信这是从正常网页过来的请求~)。如果只是简单请求对面的主页,那么用最简单的request.get()就行。
另一个就是字典了(这里是param)。python把网络请求的参数都打包到了这个param里面,简单明了。省得你自己去一个一个写参数到请求里去,复杂得吐血。只是要注意每个参数之间用","分隔。
Ajax和局部刷新
什么是局部刷新?
不按回车键,网页却会根据用户输入的信息自动刷新,就是局部刷新。最典型例子就是翻译页面,输入个单词不用按回车键,页面上就自动列出翻译结果了。这就是局部刷新。
比如下面这个
局部刷新,那么就要用到Ajax了。
<TBC>
赤膊帝国的最新日记 · · · · · · ( 全部 )
热门话题 · · · · · · ( 去话题广场 )
- 解锁我的夏日旅行足迹地图 活动 5.6万次浏览
- 你想对高考生们说点什么? 6842次浏览
- 人生第一次不顾别人感受,结果_____ 新话题
- 第26届上海国际电影节 新话题 · 3.0万次浏览
- 你最爱的粽子口味 1.3万次浏览
- 每天夸夸自己的三件小事 2279次浏览