windows下python安装及使用

主要内容:

1. python的安装

2. python爬虫的几个小例子

---------------------------------------------------------------------------------------------------------------------------------------------------

1. python的安装

在windows下一般采用jdk+eclipse+python的安装方式,这里eclipse的作用还是个编辑器,写代码用的,把python内嵌到eclipse环境下,实现在eclipse下编写扩展名为.py的代码,然后直接调用python程序进行解析。至于jdk,它和eclipse是对好基友,分不开的。安装时要注意操作系统是32位还是64位,依此来选择相应的安装版本,我的是32位系统,使用的jdk版本是jdk-8u112-windows-i586.exe,eclipse版本是eclipse-jee-neon-1a-win32.zip,python版本为python-2.7.12.msi,具体安装方法参见:http://www.cnblogs.com/Realh/archive/2010/10/04/1841907.html。

2. python爬虫的几个小例子

(1)实现了http://www.cnblogs.com/Bonker/p/3584707.html中的一个小例子

1 name =raw_input('What is your name?')
2 if name.endswith('tank'):
3     print 'Hello tank'
4 elif name.endswith('xiao'):
5     print 'Hello xiao'
6 else:
7     print 'Hello Strange'  

解释一下,第一行创建name对象,该对象通过python内建函数raw_input,通过读取控制台的输入与用户实现交互,运行时会在控制台提示"What is your name?",用户需要在其后输入字符信息;

第2~7行,是一个多分支选择结构,判断的依据是name对象的endswith方法,endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False,运行结果如下:

(2)读取百度网页信息的一个小例子

 1 #coding:utf-8
 2 '''
 3 Created on 2016年12月20日
 4 
 5 @author: Adminstrator
 6 '''
 7 import urllib2 
 8 '''
 9 请求的地址创建一个Request对象,
10 通过调用urlopen并传入Request对象,将返回一个相关请求response对象,
11 
12 '''
13 req = urllib2.Request('http://www.baidu.com')    
14 response = urllib2.urlopen(req) 
15 #Response中调用.read()   
16 the_page = response.read() 
17    
18 print the_page 

#coding:utf-8 要在py文件里面写中文,需要添加这样一行声明文件编码的注释,否则python2会默认使用ASCII编码;

第2行和第6行的'''代表这两行之间的内容为注释,第8行和第12行同理。

关于urllib2,这篇博客解释的很清楚:http://www.360doc.com/content/13/0204/13/3046928_264179264.shtml,程序中也有注释,调用urlopen函数对请求的url返回一个respons对象,这个respons是一个类file的对象,因此我们可以用read()函数来操作这个respons对象。执行效果如下图所示:

 (3)下载百度贴吧中对应页码内的所有页面并存储为html文件

 1 #coding:utf-8
 2 import string, urllib2  
 3 #定义百度函数  
 4 def baidu_tieba(url,begin_page,end_page):     
 5     for i in range(begin_page, end_page+1):  
 6         sName = string.zfill(i,5) + '.html'#自动填充成五位的文件名  
 7         print '正在下载第' + str(i) + '个网页,并将其存储为' + sName + '......'  
 8         f = open(sName,'w+')  
 9         m = urllib2.urlopen(url + str(i)).read()  
10         f.write(m)  
11         f.close()  
12 
13 #-------- 在这里输入参数 ------------------  
14    
15 # 这个是三亚学院 的百度贴吧中某一个帖子的地址  
16 #bdurl = 'http://tieba.baidu.com/p/2296017831?pn=' 
17 #http://tieba.baidu.com/f?kw=%C8%FD%D1%C7%D1%A7%D4%BA&fr=ala0&tpl=5
18 #http://tieba.baidu.com/f?kw=%E4%B8%89%E4%BA%9A%E5%AD%A6%E9%99%A2&ie=utf-8 
19 #iPostBegin = 1  
20 #iPostEnd = 10  
21     
22 bdurl = str(raw_input(u'请输入贴吧的地址,去掉pn=后面的数字:\n'))  
23 begin_page = int(raw_input(u'请输入开始的页数:\n'))  
24 end_page = int(raw_input(u'请输入终点的页数:\n'))  
25 #-------- 在这里输入参数 ------------------  
26      
27 #调用  
28 baidu_tieba(bdurl,begin_page,end_page)  
第2行import string就是引入string模块,使得我们可以调用与字符串操作相关的函数。比如后面的zfill和str函数
第5行for in range是循环的意思,示例:
 for i in range(1,5):
print i
>>>
1
2
3
4
它是如何工作的:
打印一个数字序列。我们使用内置的range函数生成这个数字序列。
我们在这里所做的是提供两个数字,range返回一个从第一个数字到第二个数字的一个数字序列。例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。在上面这个示例中,在语句块中我们只是打印它的值。
程序段中,第6~11行是循环体里的语句:第6行string.zfill(i,5),还有另外一种写法str(i).zfill(5),zfill()方法是垫零左侧的字符串,以填补宽度,如i的值为1,填补宽度为5,则会显示00001;
第8行f=open(sName,'w+'),以写入方式打开变量sName存储的字符串命名的文件,如果该文件不存在,则创建它。
执行效果如下图所示:

 




posted @ 2016-12-20 01:21  木子李ykt  阅读(1349)  评论(0编辑  收藏  举报