随笔分类 - Python
摘要:原创博文,转载请注明出处。单线程爬取:所用模块urllib2,re 1 # -*- coding: cp936 -*- 2 import urllib2 3 import re 4 5 def main(): 6 url="http://www.baidu.com/" 7 req = urllib2.Request(url) 8 resp = urllib2.urlopen(req) 9 respHtml = resp.read()10 #使用百度前必读 ,匹配内容11 ahn='(?P.+)'12 found=re.search(ahn,re...
阅读全文
摘要:原创博文,转载请注明出处今天在学习python进程与线程时,无意间发现了线程池threadpool模块,见官方文档。模块使用非常简单,前提是得需要熟悉线程池的工作原理。我们知道系统处理任务时,需要为每个请求创建和销毁对象。当有大量并发任务需要处理时,再使用传统的多线程就会造成大量的资源创建销毁导致服务器效率的下降。这时候,线程池就派上用场了。线程池技术为线程创建、销毁的开销问题和系统资源不足问题提供了很好的解决方案。优点: (1)可以控制产生线程的数量。通过预先创建一定数量的工作线程并限制其数量,控制线程对象的内存消耗。(2)降低系统开销和资源消耗。通过对多个请求重用线程,线程创建、销毁的..
阅读全文
摘要:为何要将URL地址进行编码 然后发送到服务器端?协议规范:RFC 1738,定义了,url地址中,不能包含,除了,0-9的数字,大小写字母(a-zA-Z),短横线’-’之外的字母,但是我们的URL中不止这些字符还有一些特殊字符比如$-_.+!*’(),这时候就需要我们进行编码传输。编码很简单,就是将其值变为%xx而已,而xx就是该字符的16进制值而已。下面的表取自百度百科,大家可以参考一下。backspace %08I %49v %76ó %D3tab %09J %4Aw %77Ô %D4linefeed %0AK %4Bx %78Õ %D5
阅读全文