No Comments 作者:小项-怪物猪 分类:Python

os lib Help 中文说明


说明{可以使用help('os.***')来查看各详细使用方法}


 

 

 

 

 

  • 所有函数都能应用于各类操作系统.

  • os.path

  • os.name

  • os.curdir 使用一个字符串代表当前目录('.' or ':'){不包含引号}

  • os.pardir 使用一个字符串代掉当前目录('..' or '::'){不包含引号}

  • os.sep 使用最常见的路径分隔方法('/' or ':' or '\\')

  • os.extsep 增强型分隔方法('.' or '/')

  • os.altsep

  • os.pathsep

  • os.linesep

  • os.defpath

  • os.devnull
  •  

     

     

     


    详细内容请点击这里,转载请著名出处


     

    2 Comments 作者:小项-怪物猪 分类:Python

    这个是在前面的一个翻译基础上增加了一些功能

    学习中的知识点:  利用os.system 执行系统命令

    从而也了解到ubuntu系统的一个朗读命令  espeak 需要朗读的单词 And 句子

    同时也发现一个问题. 执行命令的时候 朗读完成以后才显示翻译结果.

    不知道具体怎么解决.那个朋友如果有解决办法给我留个言谢谢了.


    Python代码

    1. #!/usr/bin/python  
    2. #-*-coding:utf-8-*-  
    3.   
    4. # 使用httplib进行post数据  
    5.   
    6. import httplib, urllib; #加载web通讯类模块  
    7. import sys,getopt; #加载获取命令行参数模块  
    8. import os; #加载这个是为了使用系统自带的espeak的朗读功能  使用方法 os.system("")  
    9.   
    10. opts,argv = getopt.getopt(sys.argv[1:],'',['']); #获取命令行参数  
    11. c = " ";  
    12. argv = c.join(argv); #对参数进行整合  
    13. print "翻译",argv,"==>",;  
    14. params = urllib.urlencode({'sl':'zh-CN',  
    15.                            'tl':'en',  
    16.                            'text':argv,  
    17.                            'client':'t'}); #进行GET or POST的参数列表  
    18. headers = {"User-Agent""Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)"#输出标头  
    19. conn = httplib.HTTPConnection("translate.google.cn"); #创建一个特定连接  
    20. conn.request("GET","/translate_a/t?" + params,headers=headers);  #发送数据请求  
    21. data = conn.getresponse();  #返回得到的数据结果  
    22. data1 = data.read(); # 读取返回结果  
    23. conn.close(); #关闭连接  
    24. print data1;  
    25. os.system('espeak "%s"' % data1); #并进行朗读  

    1 Comment 作者:小项-怪物猪 分类:Python

    Python的模块  httplib 利用post进行表单数据提交.{用以实现自动发布这个功能,前提是不需要登录的情况;登录的情况还需要研究,暂时没搞定呢}

    学习知识点:

      httplib request的用法
      getresponse() 用以进行返回数据

    看下面的列子:



    1. #!/usr/bin/python  
    2. #-*-coding:utf-8-*-  
    3.   
    4. # 进行表单提交  小项  2008-10-09  
    5.   
    6. import httplib,urllib;  #加载模块  
    7.   
    8. #定义需要进行发送的数据  
    9. params = urllib.urlencode({'cat_id':'6',  
    10.                            'news_title':'标题-Test39875',  
    11.                            'news_author':'Mobedu',  
    12.                            'news_ahome':'来源',  
    13.                            'tjuser':'carchanging',  
    14.                            'news_keyword':'|',  
    15.                            'news_content':'测试-Content',  
    16.                            'action':'newnew',  
    17.                            'MM_insert':'true'});  
    18. #定义一些文件头  
    19. headers = {"Content-Type":"application/x-www-form-urlencoded",  
    20.            "Connection":"Keep-Alive","Referer":"http://192.168.1.212/newsadd.asp?action=newnew"};  
    21. #与网站构建一个连接  
    22. conn = httplib.HTTPConnection("192.168.1.212");  
    23. #开始进行数据提交   同时也可以使用get进行  
    24. conn.request(method="POST",url="/newsadd.asp?action=newnew",body=params,headers=headers);  
    25. #返回处理后的数据  
    26. response = conn.getresponse();  
    27. #判断是否提交成功  
    28. if response.status == 302:  
    29.     print "发布成功!^_^!";  
    30. else:  
    31.     print "发布失败\^0^/";  
    32. #关闭连接  
    33. conn.close();  

     

    3 Comments 作者:小项-怪物猪 分类:Python

    利用google 翻译写的python命令行翻译脚本

    使用方法:请看下面的评论

    学习知识点:    利用httplib 进行数据提交,并返回结果
    复          习:    利用对jion split 进行 列表 字符串整理.

    代码请看全文:


    python代码

    1. #!/usr/bin/python  
    2. #-*-coding:utf-8-*-  
    3.   
    4. # 使用httplib进行post数据  
    5.   
    6. import httplib, urllib; #加载web通讯类模块  
    7. import sys,getopt; #加载获取命令行参数模块  
    8.   
    9. opts,argv = getopt.getopt(sys.argv[1:],'',['']); #获取命令行参数  
    10. c = " ";  
    11. argv = c.join(argv); #对参数进行整合 split 是对数据进行拆分  
    12. print "你输入的是:",argv;  
    13. params = urllib.urlencode({'sl':'en',  
    14.                            'tl':'zh-CN',  
    15.                            'text':argv,  
    16.                            'client':'t'}); #进行GET or POST的参数列表  
    17. headers = {"User-Agent""Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)"#输出标头  
    18. conn = httplib.HTTPConnection("translate.google.cn"); #创建一个特定连接  
    19. conn.request("GET","/translate_a/t?" + params,headers=headers);  #发送数据请求  
    20. data = conn.getresponse();  #返回得到的数据结果  
    21. data1 = data.read(); # 读取返回结果  
    22. conn.close(); #关闭连接  
    23. print "翻译结果为:",data1; #输出翻译结果  

     

    3 Comments 作者:小项-怪物猪 分类:Python

    现在学习python 做为练手写了个网站内容采集脚本.

    实现功能如下:

     

    1.根据配置文件进行采集.
    2.支持命令行参数 如: python corn.py --config=urls.ini
    3.根据规则生成url列表集(只支持数字,能倒序采集).
    4.根据规则获取列表页面特定位置,从而进一步分析缩小范围分析内容页面url.
    5.将内容部分url存储到文件,每行一个url,并且在写入的时候进行判断是否已经存在相同url.
    6.Bug太多,我慢慢完善.

    使用方法:  ubuntu环境  终端运行 python xxx.py --config=xxx.ini

                    windows环境 修改#!/usr/bin/python 为你的python.exe目录 在命令行运行 python xxx.py --config=xxx.ini

     

    下面给出代码 保存成.py文件:


    python代码

    1. #!/usr/bin/python  
    2. #-*-coding:utf-8-*-  
    3.   
    4. #  简单的蜘蛛采集程序  
    5. #  小项  
    6. #  2008-09-18  
    7.   
    8.   
    9. import sys;  
    10. import getopt;  
    11. import re;  
    12. import urllib;  
    13. import ConfigParser;  
    14. import time;  
    15. import MySQLdb as mysql;  
    16.   
    17.   
    18. if __name__ == "__main__":  
    19.   
    20.     try:  
    21.         opts,argv = getopt.getopt(sys.argv[1:],'c:',['config=']);  
    22.     except getopt.GetoptError:  
    23.         Help()  
    24.       
    25.     for keys,cut in opts:  
    26.         #if keys in ('-w','--write'):  
    27.         #    writefile()  
    28.         if keys in ('-c','--config'):  
    29.             cut  
    30.   
    31. try:  
    32.     conf = ConfigParser.ConfigParser();  
    33.     conf.readfp(open(cut));  
    34.   
    35. #==读取采集配置文件==#  
    36. #--urllibs--#  
    37.     starturl = conf.get("urllibs","starturl");  
    38.     startpage = int(conf.get("urllibs","startpage"));  
    39.     endpage = int(conf.get("urllibs","endpage"));  
    40.     urltemp = starturl + conf.get("urllibs","urltemp");  
    41.     filelist = conf.get("urllibs","urllist");  
    42.     dellist = conf.get("urllibs","dellist");  
    43. #--countcfg--#  
    44.     Stops = int(conf.get("countcfg","Stops"));  
    45.   
    46.     Divurl = conf.get("countcfg","Divurl");  
    47.     Urlls = conf.get("countcfg","Urlls");  
    48.   
    49.     Title = conf.get("countcfg","Title");  
    50.     Keywords = conf.get("countcfg","Keywords");  
    51.     Description = conf.get("countcfg","Description");  
    52.   
    53.   
    54.     url = [ urltemp % page for page in range(startpage,endpage) ];  
    55.     for url in url:  
    56.         urllist = urllib.urlopen(url).read(); #读取web文件  
    57.         urls = re.findall(Divurl,urllist); #获取指定的特定区域  
    58.     #将urls{属性为list}转换成str属性的以便于再次获取  
    59.         c = "";  
    60.         urls = c.join(urls);  
    61.         urlls = re.findall(Urlls,urls);  
    62.         urlfile = file(filelist,'r+a'); #打开文件进行追加数据  
    63.         outurl = urlfile.readlines();  
    64.       
    65.         for urlls in set(urlls):  
    66.         #==整理url并进行重复判断==#  
    67.             curls = urlls + "\n";  
    68.           
    69.             if curls in outurl:  #对找到的连接列表进行循环  
    70.                 print urlls + "页面重复跳过";  
    71.                 continue;  # break 是属于整个跳过,continue 是属于跳回去继续执行  
    72.             urlfile.write(urlls + '\n'); #循环输出  
    73.         urlfile.close(); #关闭文件  
    74.   
    75.     print "所有url列表获取完成,存入",filelist,"文件中";  
    76.   
    77.     time.sleep(Stops); #同样停顿一下  
    78.   
    79. #==每次读取列表文件的一行并且指针下移一行,这样可以循环获取每个列表.难题为如何获取整个文件的行数==#  
    80.     listurl = open(filelist,'r');  
    81.     mun = len(listurl.readlines())+1;  
    82.     listurl.seek(0); #指针跳会文件开头  
    83.   
    84.     #contents = open('contens.txt','a');  
    85.     User = 'root';  
    86.     Passwd = '970207';  
    87.     Host = 'localhost';  
    88.     Db = 'testcorn';  
    89.     contents = mysql.connect(user=User,passwd=Passwd,host=Host,db=Db).cursor();  
    90.       
    91.   
    92. #==进行内容循环输出==#  
    93.     for conurl in range(1,mun):  
    94.   
    95.         curl = listurl.readline();  
    96.     #okurl = r'http://www.510buy.com/yewu/5662.html';  
    97.     #print okurl;  
    98.       
    99.         time.sleep(Stops); #停顿一下,免得被封,or超时 进行下一次采集  
    100.          
    101.         content = urllib.urlopen(starturl + curl).read(); #读取url  
    102.   
    103.         title = re.findall(Title,content); #找到标题  
    104.       
    105.         keywords = re.findall(Keywords,content); #找到关键词  
    106.       
    107.         description = re.findall(Description,content); #找到描述  
    108.       
    109.         for title,keywords,description in zip(set(title),set(keywords),set(description)):  
    110.         #print title;  #测试查看输出结果  
    111.             #contents.write('[Title:]' + title + '\n');  
    112.             #contents.write('[Keyword:]' + keywords + '\n');  
    113.             #contents.write('[Description:]' + description + '\n\n');  
    114.             #values = "(" + "\"" + title + "\"","\"" + keywords + "\"","\"" + description + "\"" + ")"  
    115.             #contents.execute("INSERT INTO `counts` (`title` ,`keywords` ,`description`) VALUES (%s, %s, %s);",values);  
    116.             #title = title.encode(title,"utf=8")  
    117.             print "写入",title,"成功!","停顿",Stops,"秒进行下一次采集";  
    118.     contents.close();  
    119.   
    120. except KeyboardInterrupt:  
    121.     print "用户终止";  

    下面是ini的配置文件 保存成.ini文件:


    Ini配置文件代码

    1. [urllibs]  
    2. #目标网址  
    3. starturl = http://www.510buy.com  
    4. #列表开始页码  
    5. startpage = 2  
    6. #列表结束页码  
    7. endpage = 3  
    8. #列表部分代码  
    9. urltemp = /yewu/list_%d.html  
    10. #存储url列表文件路径  
    11. urllist = /home/buysz/桌面/urllist.ini  
    12. #剔除不需要的url列表,中间用,隔开  
    13. dellist = http://www.510buy.com,http://www.510buy.com" target="_blank,/yewu/index.html,http://www.510buy.com/  
    14.   
    15. [countcfg]  
    16. #采集停顿秒数  
    17. Stops = 1  
    18. #采集特定位置url规则  
    19. Divurl = <div.*?>(.*?)<\/div>  
    20. #采集url的正则  
    21. Urlls = <a href=[\"|\'](.*?)[\"\']>  
    22.   
    23. #标题正则  
    24. Title = <title>(.*?) - .*?</title>  
    25. #关键词正则  
    26. Keywords = name=\"keywords\" content=\"(.*?)\">  
    27. #页面描述正则  
    28. Description = name=\"description\" content=\"(.*?)\">