我正在尝试抓取一个使用大量相对 URL 的网站。一个存档页面包含指向许多单独条目的链接,但 URL 的格式类似于“../2011/category/example.html”
对于每个条目,我想打开页面并抓取它,但我不确定最有效的处理方法是什么。我正在考虑用“/”拆分起始 URL,弹出最后一项并重新加入它们,以获得基本 URL。
不过,这似乎是一个障碍。有没有更清洁的方法?
我正在尝试抓取一个使用大量相对 URL 的网站。一个存档页面包含指向许多单独条目的链接,但 URL 的格式类似于“../2011/category/example.html”
对于每个条目,我想打开页面并抓取它,但我不确定最有效的处理方法是什么。我正在考虑用“/”拆分起始 URL,弹出最后一项并重新加入它们,以获得基本 URL。
不过,这似乎是一个障碍。有没有更清洁的方法?
要从相对 URL 构造绝对 URL,请使用urlparse.urljoin
(此处的文档)。
但是,如果您正在使用诸如mechanize
爬网之类的浏览系统,则可以简单地首先获取绝对 url,然后再将相对 url 提供给浏览器。浏览器将跟踪状态并自动从与先前请求相同的域中获取 URL。