如何找到网站下的所有目录和链接?请注意,没有从主页到所有其他页面的链接。例如,如果我有一个像 users.company.com 这样的域,每个用户都会有一个类似 users.company.com/john、users.company.com/peter 等的链接。但我不知道有多少用户什么是所有链接,我想强力检查所有链接。如果我想编写一个 python 脚本来完成这项工作,我可以从哪里获得在 python 中开发它的信息?
3 回答
由于您没有任何从主页指向其他页面的链接。您拥有的唯一信息是主页的 URL 和用于访问用户的 URL 模式。
然后我看到它的唯一可能性是使用名称字典,或所有可能的长度有限的字符串排列。然后访问其中的每一个。
查看http://docs.python.org/2/library/urllib.html以了解如何创建 HTTP 请求/打开 URL。
然后编写一个循环遍历所有名称/字符串排列并调用 URL。
您可能会考虑同时执行此操作,这应该相对容易实现:http ://en.wikipedia.org/wiki/Embarrassingly_parallel
您可以为此目的使用第三方工具,而不是先编写 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 文件的路径。
检查“机械化”python 模块。使用起来非常方便。这些页面对我帮助很大 - 信息的重要来源: http://stockrt.github.com/p/emulating-a-browser-in-python-with-mechanize/ https://scraperwiki.com/views/python_mechanize_cheat_sheet /编辑/
只是为了让您了解“机械化”可以做什么,这是一个简单的函数,它将列出来自给定 url 的所有链接:
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()