ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 获取一个url点击后经过的所有url

2024-07-10 12:19:29  阅读:135  来源: 互联网

标签:


如果您想获取经过的所有跳转链接,您可以使用 seleniumwire 库来扩展 Selenium 功能,以便记录浏览器请求和响应。这样,您可以获取到所有的跳转链接。

首先,确保您已经安装了 selenium 和 seleniumwire 库。您可以使用以下命令进行安装:

pip install selenium seleniumwire

以下是一个示例代码,演示了如何使用 seleniumwire 获取经过的所有跳转链接:

from selenium import webdriver
from seleniumwire import webdriver as wiredriver

# 创建 Chrome 浏览器实例
options = webdriver.ChromeOptions()
options.headless = True
driver = wiredriver.Chrome(options=options)

# 要获取 URL 的网页
start_url = "https://example.com"

def get_all_redirect_urls(url):
    # 启用网络请求监听
    driver.scopes = []  # 清空上一次请求记录

    driver.get(url)

    # 获取所有跳转链接
    redirect_urls = []
    for request in driver.requests:
        if request.response:
            if request.response.status_code in [301, 302]:  # 重定向状态码
                redirect_url = request.response.headers['Location']
                redirect_urls.append(redirect_url)

    # 打印跳转链接
    for redirect_url in redirect_urls:
        print("Redirect URL:", redirect_url)

        # 递归获取跳转链接
        get_all_redirect_urls(redirect_url)

get_all_redirect_urls(start_url)

# 关闭浏览器
driver.quit()

Python

在上面的示例代码中,我们创建了一个 wiredriver.Chrome 实例,它是 seleniumwire 的自定义 Chrome 驱动程序。我们启用了网络请求监听,通过遍历浏览器的请求并检查响应的状态码,来判断是否为重定向响应。如果是重定向响应,我们就获取 Location 响应头中的跳转链接,并将其加入列表中。然后递归地对每一个跳转链接进行相同的处理。

请注意,这只是一个简单的示例代码,您可能需要根据实际情况进行相应的修改和优化。另外,根据不同的浏览器和操作系统,您可能需要下载不同的浏览器驱动程序,并修改实例化浏览器的代码。

希望能帮助到您!

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有