我希望能够让所有的URL,一个浏览器会做,当我们试图打开一个网页的GET请求的列表。 对于例如:如果我们尝试打开cnn.com,还有一些浏览器递归请求第一HTTP响应中多个网址。
我并不想呈现一个页面,但我试图获得当呈现页面被请求的所有URL列表。 这样做的HTTP响应内容的简单的扫描是不够的,因为有可能是在其中下载的CSS图像。 反正我有可以在Python这样做呢?
我希望能够让所有的URL,一个浏览器会做,当我们试图打开一个网页的GET请求的列表。 对于例如:如果我们尝试打开cnn.com,还有一些浏览器递归请求第一HTTP响应中多个网址。
我并不想呈现一个页面,但我试图获得当呈现页面被请求的所有URL列表。 这样做的HTTP响应内容的简单的扫描是不够的,因为有可能是在其中下载的CSS图像。 反正我有可以在Python这样做呢?
这可能是因为你必须来渲染页面(虽然不一定显示出来),以确保你得到所有资源的完整列表。 我用PyQT
和QtWebKit
类似的情况。 尤其是当你开始计算资源动态地使用JavaScript在内,试图解析和加载页面递归与BeautifulSoup
仅仅是行不通的。
Ghost.py是一个优秀的客户端,让你开始与PyQt的。 此外,检查出QWebView文档和QNetworkAccessManager文档 。
Ghost.py打开页面时返回(页,资源)的元组:
from ghost import Ghost
ghost = Ghost()
page, resources = ghost.open('http://my.web.page')
resources
包括所有由原始URL加载HttpResource对象的资源。 您可以检索的网址与已加载的资源resource.url
。
我想你必须创建一个你不希望所有已知文件扩展名列表,然后扫描HTTP响应的内容,以检查“如果诺诺列表不串”
问题是所有HREF的结束与顶级域名,forwardslashes,网址交付的变量等等,所以我认为它会更容易检查你知道你不想要的东西。