我是一个python新手我正在尝试做的是创建两个脚本。一个下载网页信息和下载链接的另一个脚本,并输出下载到列表中的链接总数的摘要。
第一个脚本(下载网页)
import sys, urllib
def getWebpage(url):
print '[*] getWebpage()'
url_file = urllib.urlopen(url)
page = url_file.read()
return page
def main():
sys.argv.append('http://www.funeralformyfat.tumblr.com)
if len(sys.argv) != 2:
print '[-] Usage: webpage_get URL'
return
else:
print getWebpage(sys.argv[1])
if __name__ == '__main__':
main()
第二个脚本(下载链接并输出下载到列表中的链接总数的摘要。)
import sys, urllib
def print_links(page):
print '[*] print_links()'
links = re.findall(r'\<a.*href\=.*http\:.+', page)
links.sort()
print '[+]', str(len(links)), 'HyperLinks Found:'
for link in links:
print link
def main():
sys.argv.append('http://www.funeralformyfat.tumblr.com')
if len(sys.argv) != 2:
print '[-] Usage: webpage_links URL'
return
page = webpage_get.getWebpage(sys.argv[1])
print_links(page)
if __name__ == '__main__':
main()
我的代码运行但它不返回任何链接。任何人都可以看到这个问题吗?
答案 0 :(得分:0)
print getWebpage(sys.argv[1]) <---- IndexError: list index out of range
sys.argv
尚未更新(附加内容位于main
函数中,其中尚未已被调用)
你应该尝试以下&amp;看到为自己工作。
import sys, urllib
def getWebpage(url):
print '[*] getWebpage()'
url_file = urllib.urlopen(url)
page = url_file.read()
return page
def main():
sys.argv.append('http://www.funeralformyfat.tumblr.com')
if len(sys.argv) != 2:
print '[-] Usage: webpage_get URL'
return
else:
print getWebpage(sys.argv[1])
if __name__ == '__main__':
main()
NameError: name 'links' is not defined
这是因为您在定义该变量的函数之外有scoped
links
列表。正确的缩进将是
def print_links(page):
print '[*] print_links()'
links = re.findall(r'\<a.*href\=.*http\:.+', page)
links.sort()
print '[+]', str(len(links)), 'HyperLinks Found:'
for link in links:
print link