获取Python中页面的所有请求URL

获取Python中页面的所有请求URL,python,networking,Python,Networking,是否仍然可以获取页面的所有请求URL?例如,当我访问一个站点时,浏览器会向服务器发出多个网络请求,例如html、css和显示页面所需的其他文件。我想使用Python获取所有这些资源URL。基本上,我想从下面的截图中获得所有类似的URL。谁能给我指出正确的方向吗 PS:我想通过脚本来实现这一点,从而使任务自动化。我知道我可以使用Wireshark来完成这类任务,但我无法实现自动化 对于其他感兴趣的人来说:我从中得到的下一个片段对我有用 我相信它有一些限制,正如上面所描述的(不同的浏览器,不同的路径

是否仍然可以获取页面的所有请求URL?例如,当我访问一个站点时,浏览器会向服务器发出多个网络请求,例如html、css和显示页面所需的其他文件。我想使用Python获取所有这些资源URL。基本上,我想从下面的截图中获得所有类似的URL。谁能给我指出正确的方向吗

PS:我想通过脚本来实现这一点,从而使任务自动化。我知道我可以使用Wireshark来完成这类任务,但我无法实现自动化


对于其他感兴趣的人来说:我从中得到的下一个片段对我有用

我相信它有一些限制,正如上面所描述的(不同的浏览器,不同的路径,等等,这使得这个黑客不是一般的),但它可能会挽救一些人的一天

# get the CSS files
css_files = []

for css in soup.find_all("link"):
    if css.attrs.get("href"):
        # if the link tag has the 'href' attribute
        css_url = urljoin(url, css.attrs.get("href"))
        css_files.append(css_url)
print(css_files) # list of URLs of the files called

对于其他感兴趣的人:我从中得到的下一个片段对我有用

我相信它有一些限制,正如上面所描述的(不同的浏览器,不同的路径,等等,这使得这个黑客不是一般的),但它可能会挽救一些人的一天

# get the CSS files
css_files = []

for css in soup.find_all("link"):
    if css.attrs.get("href"):
        # if the link tag has the 'href' attribute
        css_url = urljoin(url, css.attrs.get("href"))
        css_files.append(css_url)
print(css_files) # list of URLs of the files called

首先要意识到的是,“显示页面需要哪些文件”这个问题的答案可能取决于您运行的浏览器。对于初学者来说,页面上的任何JavaScript都可能根据浏览器名称、版本或JavaScript环境的其他方面显示完全不同的内容。你不能完全模仿某个特定的浏览器,尽管你可以使用selenium来驱动它。@SteveJessop我不知道你是否理解我的问题。我不需要知道显示页面需要哪些文件。我只想获取任何被进一步请求的URL,例如当我访问www.google.com时。“被进一步请求的URL,例如当我访问”URL也可以取决于你使用什么浏览器访问它(事实上,我不确定这与我说的有什么不同)。我的观点是,我可以编写一个页面,在Firefox中加载时请求图像a,或者在Chrome中加载时请求图像B。你想要什么:A的URL还是B的URL?Python能够确定IE在访问页面时所做的事情的唯一方法是观看IE的操作。任何被请求的URL。如果你根本不关心哪个浏览器,那么总是返回一个空列表(或者只返回html页面本身的URL),因为存在一个浏览器(Lynx),当你访问页面时,它不会加载任何图像、CSS或javascript,因为它不支持任何这些东西;-)或者,您的意思是您将自己使用自己选择的浏览器手动访问URL,然后希望Python告诉您加载了哪些其他资源?首先要了解的是,“显示页面需要哪些文件”这一问题的答案可能取决于您运行的浏览器。对于初学者来说,页面上的任何JavaScript都可能根据浏览器名称、版本或JavaScript环境的其他方面显示完全不同的内容。你不能完全模仿某个特定的浏览器,尽管你可以使用selenium来驱动它。@SteveJessop我不知道你是否理解我的问题。我不需要知道显示页面需要哪些文件。我只想获取任何被进一步请求的URL,例如当我访问www.google.com时。“被进一步请求的URL,例如当我访问”URL也可以取决于你使用什么浏览器访问它(事实上,我不确定这与我说的有什么不同)。我的观点是,我可以编写一个页面,在Firefox中加载时请求图像a,或者在Chrome中加载时请求图像B。你想要什么:A的URL还是B的URL?Python能够确定IE在访问页面时所做的事情的唯一方法是观看IE的操作。任何被请求的URL。如果你根本不关心哪个浏览器,那么总是返回一个空列表(或者只返回html页面本身的URL),因为存在一个浏览器(Lynx),当你访问页面时,它不会加载任何图像、CSS或javascript,因为它不支持任何这些东西;-)或者,您的意思是您将自己使用自己选择的浏览器手动访问URL,然后希望Python告诉您加载了哪些其他资源?