说到命令行爬虫,其实需要很多参数,通过命令行传参数,估计大家也都常用,尤其是linux用户。比如我用的ubuntu,显示当前目录下的文件列表:ls -la或者是过滤显示:ls -la|grep 'log'
那么在python中怎么来接受命令行传递过来的参数呢?
比如要实现这样的功能:python fetch.py http://www.baidu.com
普通的python代码是这样的:
#demo1
import sys
if __name__ == '__main__':
url = sys.argv[1] #不可取的代码,根本没进行逻辑判断
fetch(url) #假设这个函数已经存在。
文艺的python代码就是用optparse来实现:
不过你使用的时候应该这样优雅的使用:
python fetch.py -u http://www.baidu.com
当你不知道需要传递什么参数的时候,只需python fetch.py -h,optparse会自动帮你输出你定义好的参数和说明
来看代码:
#demo2
from optparse import OptionParser
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-u", "--url", dest="url",
help="the webpage url you want to fetch.eg:-u http://www.baidu.com")
(options, args) = parser.parse_args() #parser.parse_args处理之后给option返回一个字典对象,对象的key就是你上面设置的dest的值
fetch(options.url)
二B的python代码就是用着optparse,做着老套的事:
#demo3
from optparse import OptionParser
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-u", "--url", dest="url",
help="the webpage url you want to fetch.eg:-u http://www.baidu.com")
(options, args) = parser.parse_args() #parser.parse_args处理之后,把不是以 -u 传递的参数作为数组传递到args中
fetch(args[0])
上面三个简单的小例子,简单的说了下optparse之于命令行的作用,那么来概念一下这个东西:
官网描述如下:“optparse is a more convenient, flexible, and powerful library for parsing command-line options ” 意思是,这个玩意是用来处理命令行参数时,一个方便、灵活、功能强大的库。
根多的使用还是上这里看吧,我觉得写的很详细了:http://docs.python.org/library/optparse.html
- from the5fire.com
----EOF-----
微信公众号:Python程序员杂谈
微信公众号:Python程序员杂谈