Spidering:
这篇Python教程将介绍一些新模块(optparse,spider)来完成抓取Web应用程序的任务。通过跟踪Web应用程序中的链接来帮助构建站点地图,Web应用程序的嵌入是Web应用程序上的枚举链接内容的过程。抓住Web应用程序是利用Python创建快速脚本的一个很好的用例。
您可以通过解析请求响应上的href标记来创建爬网程序脚本,然后创建其他请求。您还可以利用名为“Spider”的Python模块在更少的代码行中执行此操作:
您可以配置几个与蜘蛛如何工作相关的选项“myspider(b = URL.strip(),w = 200,d = 5,t = 5)”。此函数将返回两个子URL和路径列表。您可以通过更改传递给myspider函数的参数来修改蜘蛛的工作方式:
b - 基本Web URL(默认值:无) w - 要爬网的资源量(默认值:200) d - 要爬网的层次结构深度(默认值:5) ) t - 线程数(默认值:无)
这篇博文简要介绍了如何通过利用Python来与Web资源进行交互。存在许多用于编写Web资源交互脚本的高级用例。未来的博客文章将通过针对Web服务器的脚本攻击来演示一些更高级的用例。
利用Python蜘蛛模块的代码片段:
#!/usr/bin/pythonfrom spider import webspider as myspiderimport sys, optparse def crawler(URLs): for line in open(URLs, 'r'): URL = line.strip() links = myspider(b=URL.strip(), w=200, d=5, t=5) link_count = len(links[0]) out = URL+": has a link count of "+str(link_count) print "[+] Web Crawl Results for: "+URL print out for item in links[1]: print item def main():# This optparse module allows you to build command line switches in your scripts# This will set the usage to '-r' and have it stored to a variable URLs# Then we will open the file given at the command line with -r and attempt to spider parser = optparse.OptionParser(sys.argv[0]+' '+ '-r <file_with URLs>') parser.add_option('-r', dest='URLs', type='string', help='specify target file with URLs') (options, args) = parser.parse_args() URLs=options.URLs if (URLs == None): print parser.usage sys.exit(0) else: crawler(URLs) if __name__ == "__main__": main()