ICode9

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

用selenium 来获取所有经过的url

2024-07-10 12:20:12  阅读:126  来源: 互联网

标签:


如果您只想使用 Selenium 来获取所有经过的 URL,您可以使用 selenium 库结合 webdriver 的 execute_script() 方法来模拟点击链接并获取跳转的 URL。

以下是一个示例代码,演示了如何使用 Selenium 获取经过的所有 URL:

from selenium import webdriver

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

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

def get_all_urls(url):
    driver.get(url)

    # 获取当前页面的 URL
    current_url = driver.current_url
    print("Current URL:", current_url)

    # 获取当前页面中的所有链接
    links = driver.find_elements_by_tag_name("a")
    for link in links:
        href = link.get_attribute("href")
        if href:
            print("Found URL:", href)

            # 点击链接并获取跳转后的 URL
            driver.execute_script("arguments[0].click();", link)
            redirected_url = driver.current_url
            print("Redirected URL:", redirected_url)

            # 递归获取跳转后的 URL
            get_all_urls(redirected_url)

get_all_urls(start_url)

# 关闭浏览器
driver.quit()

Python

在上面的示例代码中,我们首先创建一个 Chrome 浏览器实例,并指定使用无界面(headless)模式。然后,通过调用 driver.get(url) 方法来加载要获取 URL 的网页。接着,我们使用 driver.current_url 获取当前页面的 URL,并使用 driver.find_elements_by_tag_name("a") 获取当前页面中的所有链接。然后,我们逐个点击链接并获取跳转后的 URL,使用 driver.execute_script("arguments[0].click();", link) 方法来模拟点击链接的行为。最后,我们递归调用 get_all_urls 函数,继续获取跳转后的 URL。

请注意,这只是一个简单的示例代码,您可能需要根据实际情况进行适当的修改和优化。另外,您可以根据需要,添加等待时间以确保页面加载完全。

希望能帮助到您!

标签:
来源:

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

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

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

ICode9版权所有