Python:将URL作为参数

时间:2013-12-02 21:27:04

标签: python regex arguments

我已经制作了这个目前正常运行的脚本。 URL(在脚本底部可见)显然已硬编码到脚本中。我希望脚本提示用户输入URL,或者让脚本与要获取的URL的参数一起运行。我是python的新手并且不知道,任何帮助都会受到赞赏!

import sys, re 
import webpage_get

def print_links(page): 
 ''' find all hyperlinks on a webpage passed in as input and 
print ''' 
 print '[*] print_links()' 
 # regex to match on hyperlinks, returning 3 grps, links[1] being the link itself 
 links = re.findall(r'\http\://\www.+', page)
 # sort and print the links 
 links.sort() 
 print '[+]', str(len(links)), 'HyperLinks Found:' 
 for link in links: 
     print link
def get_email(str):

    print '[*] get_email()'
    emails = re.findall(r'\w+\@\w+.com', str)
    email.sort()
    print '[+]', str(len(emails)), 'Emails Found:'
    for mail in emails:
        print mail
def get_numbers(page):
    print '[*] get_numbers()'
    numbers = re.findall ('[44\d\s]{11}', page)
    numbers.sort()
    print '[+]', str(len(numbers)), 'Numbers Found'
    for no in numbers:
        print no
def main(): 
 # temp testing url argument 
 sys.argv.append('http://URLGOESHERE.com') 

 # Check args 
 if len(sys.argv) != 2: 
     print '[-] Usage: webpage_getlinks URL' 
     return 

 # Get the web page 
 page = webpage_get.wget(sys.argv[1]) 
 # Get the links 
 print_links(page)
 get_numbers(page)

 #get_email(str)


if __name__ == '__main__': 
     main()

2 个答案:

答案 0 :(得分:3)

  

我希望脚本提示用户输入URL,或者让脚本使用要获取的URL的参数运行

首先,请执行以下操作:

url = raw_input('URL: ')

对于第二个,请执行此操作:

url = sys.argv[1]

所以,如果你想使用arg,如果它在那里,请另外问一下,执行此操作:

if len(sys.argv) < 2:
    url = raw_input('URL: ')
else:
    url = sys.argv[1]

如果你想获得任何比仅仅选择一个可选参数更高级的人,请考虑使用argparse

答案 1 :(得分:0)

http://docs.python.org/2/howto/argparse.html

并且

http://docs.python.org/2/library/functions.html#raw_input

http://docs.python.org/2/library/urlparse.html

您可以使用ArgumentParser来定义命令行参数,检查并提示用户是否存在URL并通过urlparse验证用户输入