我怎样才能提取HTML页面中获得的URL列表呈现蟒蛇?(How can I extract the

2019-07-22 02:01发布

我希望能够让所有的URL,一个浏览器会做,当我们试图打开一个网页的GET请求的列表。 对于例如:如果我们尝试打开cnn.com,还有一些浏览器递归请求第一HTTP响应中多个网址。

我并不想呈现一个页面,但我试图获得当呈现页面被请求的所有URL列表。 这样做的HTTP响应内容的简单的扫描是不够的,因为有可能是在其中下载的CSS图像。 反正我有可以在Python这样做呢?

Answer 1:

这可能是因为你必须来渲染页面(虽然不一定显示出来),以确保你得到所有资源的完整列表。 我用PyQTQtWebKit类似的情况。 尤其是当你开始计算资源动态地使用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



Answer 2:

我想你必须创建一个你不希望所有已知文件扩展名列表,然后扫描HTTP响应的内容,以检查“如果诺诺列表不串”

问题是所有HREF的结束与顶级域名,forwardslashes,网址交付的变量等等,所以我认为它会更容易检查你知道你不想要的东西。



文章来源: How can I extract the list of urls obtained during a HTML page render in python?