查找网站下的所有链接

-1 投票
3 回答
995 浏览
提问于 2025-04-17 14:10

我该如何找到一个网站下的所有目录和链接呢?注意,主页上并没有指向其他页面的链接。比如说,如果我有一个域名是 users.company.com,每个用户会有一个链接,比如 users.company.com/john,users.company.com/peter 等等。但是我不知道有多少用户,也不知道所有的链接是什么,我想通过暴力破解的方式来检查所有链接。如果我想写一个 Python 脚本来完成这个工作,我可以在哪里找到相关的信息来用 Python 开发呢?

3 个回答

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文件的路径,这种方法是有效的。

0

看看这个叫做'mechanize'的Python模块。它非常好用。

这些页面对我帮助很大,是获取信息的好地方:

http://stockrt.github.com/p/emulating-a-browser-in-python-with-mechanize/ https://scraperwiki.com/views/python_mechanize_cheat_sheet/edit/

为了让你了解'mechanize'能做些什么,这里有一个简单的函数,可以列出给定网址的所有链接:

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()
1

因为你的网站首页没有链接指向其他页面,所以你现在只有首页的URL和用来访问用户的URL格式。

我能想到的唯一办法就是使用一个名字的字典,或者生成所有可能的字符串组合,长度要有限。然后逐个访问这些组合。

你可以看看这个链接:http://docs.python.org/2/library/urllib.html,了解如何创建HTTP请求或打开网址。

接着,写一个循环,遍历所有的名字或字符串组合,并调用这些网址。

你还可以考虑同时进行这些操作,这样应该比较简单:http://en.wikipedia.org/wiki/Embarrassingly_parallel

撰写回答