如何使用 Selenium Python 替换循环中的 url

问题描述 投票:0回答:3

就像标题所说,如果我想替换部分URL,我该如何用python编写代码。

在此示例中,将此链接 (https://test.com/page/1) 的特定部分替换为 1、2、3、4 等,然后在该页面上执行某些操作并转到下一个页面重复。

因此,“打开网址 > 单击按钮或其他任何内容 > 将链接替换为新链接,并按顺序使用下一个数字”

(我知道我的代码很乱,我仍然是新手,但我正在努力学习,并且我正在添加到目前为止我写的任何乱七八糟的内容以遵循发布规则)

PATH = Service("C:\Program Files (x86)\chromedriver.exe")
driver = webdriver.Chrome(service=PATH)
driver.maximize_window()

get = 1
url = "https://test.com/page/{get}"

while get < 5:
    driver.get(url)
    time.sleep(1)
    driver.find_element_by_xpath("/html/body/div/div/div[2]/form/section[3]/input[4]").click()
    get = get + 1
    driver.get(url)
    driver.close()
python selenium selenium-webdriver range
3个回答
2
投票
get = 1
url = f"https://test.com/page/{get}"

while get < 5:
    
    driver.get(url)
    driver.find_element_by_xpath("/html/body/div/div/div[2]/form/section[3]/input[4]").click()
    print(get)
    print(url)
    get+=1
    url =  f"https://test.com/page/{get}"
    

简单地循环更新 url。

输出

1
https://test.com/page/1
2
https://test.com/page/2
3
https://test.com/page/3
4
https://test.com/page/4

1
投票

使用

range()
函数并使用字符串插值,如下所示:

for i in range(1,5):
    print(f"https://test.com/page/{i}")
    driver.get(f"https://test.com/page/{i}")
    driver.find_element_by_xpath("/html/body/div/div/div[2]/form/section[3]/input[4]").click()

控制台输出:

https://test.com/page/1
https://test.com/page/2
https://test.com/page/3
https://test.com/page/4

0
投票

根据经验,有些网站如果看到这种循环并获取请求就会重定向您,所以我尝试了这种代码方法并且对我来说效果很好:

pages = [f"https://test.com/page/{i+1}" for i in range(5)]
for i in pages:
    driver.get(f"https://test.com/page/{i}")

然后你就可以做你生活中的任何事情并绕过你未来可能遇到的任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.