如何监控URL的GET方法?

时间:2014-11-19 12:35:49

标签: python http url get urllib2

不确定我是否有意义但是这里有。在Google Chrome中,如果您右键单击页面并转到资源,然后刷新页面,则可以看到所有GET / POST方法在发生时弹出。我想知道在python中是否有一种方法可以输入一个url并让它生成一个列出每个get get的列表(如果可能的话,不确定)

会喜欢它的方向!
感谢

1 个答案:

答案 0 :(得分:1)

我相信我可以澄清原始问题的部分内容。

一方面,使用浏览器内置的调试工具来调查某个网站在浏览器加载时的行为,这是一种很好的技术,并且不容易被自定义代码替换。

另一方面,看起来您正在寻找HTML解析器,例如BeautifulSoup

此外,您似乎混淆了URL和HTML文档的含义。 URL 可以指向HTML文档,但在许多情况下,它指向其他内容,例如JSON-API端点。

假设您确实想询问“如何输入HTML文档的URL并让它生成浏览器将执行的每个远程资源调用的列表”

在呈现网站之前,Web浏览器会触发初始HTTP GET请求并检索主HTML文档。它解析此文档,并在其中搜索要检索的其他资源。这些资源可以是CSS文件,JavaScript文件,图像,iframe,......(长列表)。如果找到此类资源,浏览器会自动为这些资源的每个发出一个HTTP GET请求。正如您所看到的,在您的浏览器执行所有这些请求之前,有很多工作涉及并在幕后进行。

在Python中,您无法轻易模拟浏览器的行为。您可以通过urllibrequests模块轻松检索单个HTML文档。也就是说,您可以手动触发单个HTTP GET请求以检索HTML文档。然后需要复制浏览器的行为

  • 以与浏览器相同的方式解析HTML文档,
  • 在文档中搜索远程源,例如图像,CSS文件,....,
  • 决定以哪种顺序查询哪些远程资源,以及
  • 然后触发更多的HTTP GET请求,并且可能递归重复整个进程(如iframe所需)

浏览器行为的精确复制过于复杂。构建合适的Web浏览器本身就很困难。

也就是说,如果您想了解浏览器中网站的行为,请使用浏览器的调试工具。