我已经制作了这个目前正常运行的脚本。 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()
答案 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验证用户输入