如何查找网站下的所有目录和链接?请注意,主页与所有其他页面之间没有链接。例如,如果我有一个像这样的users.company.com这样的域名,每个用户都会有一个像users.company.com/john,users.company.com/peter等链接。但我不知道有多少用户在那里什么是所有的链接,我想蛮力检查所有链接。如果我想编写一个python脚本来完成这项工作,我在哪里可以获得信息来在python中开发它?
答案 0 :(得分:1)
由于您没有从主页指向其他页面的任何链接。您拥有的唯一信息是主页的URL和用于访问用户的URL模式。
我唯一可能看到它使用名称字典,或所有可能的字符串排列有限的长度。然后访问它们中的每一个。
查看http://docs.python.org/2/library/urllib.html,了解如何创建HTTP请求/打开网址。
然后编写一个循环遍历所有名称/字符串排列并调用URL。
您可能会考虑同时执行此操作,这应该相对容易实现:http://en.wikipedia.org/wiki/Embarrassingly_parallel
答案 1 :(得分:0)
不是先编写python脚本,而是可以使用第三方工具。
1)第一步创建目标网站的镜像,而不是解析它。 您可以使用“wget -mk http://www.targetwebsite.com”
创建目标网站的镜像http://www.gnu.org/software/wget/
你可以使用python解析镜像代码。
2)Google dorking 示例查询:
site:stackoverflow.com
site:stackoverflow.com intitle:"index of"
site:stackoverflow.com ext:html ext:php
对于没有robots.txt文件的路径,它将正常工作。
答案 2 :(得分:0)
检查'mechanize'python模块。它非常方便使用。 这个页面帮了我很多 - 很好的信息来源: http://stockrt.github.com/p/emulating-a-browser-in-python-with-mechanize/ https://scraperwiki.com/views/python_mechanize_cheat_sheet/edit/
只是为了让您体验'机械化'可以做什么,这里很简单 将列出来自给定网址的所有链接的函数:
import mechanize
def test():
headers = ('User-Agent','Mozilla/4.0')
url = 'http://www.google.com'
browser = mechanize.Browser()
browser.addheaders=[headers]
response = browser.open(url)
for link in browser.links():
print link
if __name__ == '__main__':
test()