在网站服务器上寻找子目录
我们可以很容易地使用 os.walk() 在本地磁盘上找到子目录,但如果这些目录不在本地,而是在一个网络服务器上呢?
举个例子,我有一个网站叫 http://www.geoglobaldomination.org。这个网站上有几个子目录,但在主页上并没有提到它们。比如说 http://www.geoglobaldomination.org/kml 和 http://www.geoglobaldomination.org/kml/temp。
我该如何使用一个简单的 Python 爬虫来找到这些子目录,而不依赖 HTML 标签作为参考点呢?
2 个回答
2
那么,从最一般的意义上来说,你是不能的。
有些网站在你访问时,如果在网址后面加上'/'或者'index.html',可能会给你一个子目录的列表,但这并不是必须的。网站的作者可以在你访问他们的网站时返回任何他们想要的内容(无论是用浏览器还是程序)。他们甚至可以返回“未找到”(即使你请求的文档在你请求的确切位置上是存在的)。
这完全取决于具体的实现方式。
2
想要访问远程服务器上的任何东西,都需要以某种方式让它变得公开。没有自动发现的机制,这就是为什么搜索引擎需要网站地图的原因。最好的做法是制作一个网站地图,让你的爬虫从那里开始。