其实在最前面的某一篇博文里,是绝对提过编码的,有ASCII,有UTF-8,有GB2312等等,这些我绝对说过的. url编码 首先,Http协议中参数的传输是"key=value"这种键值对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割.如"?key1=value1&key2=value2",这样在服务端在收到这种字符串的时候,会用“&”分割出每一个参数,然后再用“=”来分割出键和值并进行处理. 然后,url只能使用 ASCII…
前面既然都提到编码了,那么把相关的编码问题补充完整吧 编码 之前我说过,使用python2爬取网页时,容易出现编码问题,下面就真的拿个例子来看看: python2下: # -*- coding:utf-8 -*- import urllib url = 'http://www.qq.com/' response = urllib.urlopen(url) html = response.read() print html 结果: 像那些就是编码问题不能显示的中文,先看看腾讯首页源代码是什么默认编…
不多说直接上状态码表: 状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完成后向客户端发送一个最终响应. 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求.在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议. 只有在切换新的协议更有好处的时候才应该采…
编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了,还是没搞懂,爬虫研究完后,你以为你懂了,url编码又把你打回原形,然后你以为你真的懂了,你学到socket的时候,你发现,你还是没有真的理解,真实气人啊,对吧 与编码问题相关的都在这两篇博文中: 洗礼灵魂,修炼python(3)--从一个简单的print代码揭露编码问题,运行原理和语法习惯 洗礼灵魂…
线程(下) 7.同步锁 这个例子很经典,实话说,这个例子我是直接照搬前辈的,并不是原创,不过真的也很有意思,请看: #!usr/bin/env python #-*- coding:utf-8 -*- # author:yangva import threading,time number = 100 def subnum(): global number number -= 1 threads = [] for i in range(100): t = threading.Thread(tar…
首先你得学会基本的mysql操作语句:mysql学习 其次,python要想操作mysql,靠python的内置模块是不行的,而如果通过os模块调用cmd命令虽然原理上是可以的,但是还是不太方便,那么这个问题,很早就有人想过了,而且还做出来了,不废话,就是第三方模块pymysql和mysqldb了. 但是,python3暂不支持mysqldb,pymysql却是python2和3都支持的 所以,本篇博文说说pymysql,学了pymysql,mysqldb其实你也会了 pymysql 1.安装…
线程(上) 1.线程含义:一段指令集,也就是一个执行某个程序的代码.不管你执行的是什么,代码量少与多,都会重新翻译为一段指令集.可以理解为轻量级进程 比如,ipconfig,或者, python   XX.py(执行某个py程序),这些都是指令集和,也就是各自都是一个线程. 2.线程的特性: 线程之间可以相互通信,数据共享 线程并不等同于进程 线程有一定局限性 线程的速度由CPU和GIL决定. GIL,GIL全称Global Interpreter Lock,全局解释锁,此处暂且不谈,再下面该出…
学习本篇文章的前提,你需要了解网络技术基础,请参阅我的另一个分类的博文:网络互联技术(4)——计算机网络常识.原理剖析 网络通信要素 1.IP地址: 用来标识网络上一台独立的终端(PC或者主机) ip地址 = 网络地址+主机地址(网络号:用于主机所在的网络/网段:主机号:用于识别该网络中的主机) 特殊的ip地址:127.0.0.1(本地环回地址),可用于检测本机网卡是否正常 比如我这台电脑的ip: 检测网卡正常与否就可以ping 环回地址: 如果ping通,本地网卡就没问题 2.端口号: 用于标…
协程 1.定义 协程,顾名思义,程序协商着运行,并非像线程那样争抢着运行.协程又叫微线程,一种用户态轻量级线程.协程就是一个单线程(一个脚本运行的都是单线程) 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈. 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置,看到这 是的,就是生成器,后面再实例更会充分的利用到生成…
进程 1.含义:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位.说白了就是一个程序的执行实例. 执行一个程序就是一个进程,比如你打开浏览器看到我的博客,浏览器本身是一个软件程序,你此时打开的浏览器就是一个进程. 2.进程的特性 一个进程里可以有多个子进程 新的进程的创建是完全拷贝整个主进程 进程里可以包含线程 进程之间(包括主进程和子进程)不存在数据共享,相互通信(浏览器和python之间的数据不能互通的),要通信则要借助队列,管道之类的 3.进程和线程之间的区…