查找网址总数

问题描述

我用 python 编写脚本来获取多个 url。在控制台中打印多个 url,但我希望在控制台中打印多个 url 时显示 url 总数。

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome(executable_path="C:\Program Files\Python39\libs\chromedriver.exe")
driver.maximize_window()
url = ("https://www.libertybooks.com/")
driver.get(url)

driver.implicitly_wait(10)
time.sleep(5)

button = driver.find_element_by_xpath('//a[@class="cc-btn cc-allow"]').click()
Non_fiction = driver.find_element_by_xpath('//ul/li[2][@class="top_level dropdown"]/a').click()

for i in range(30):
 multiple_urls = driver.find_element_by_xpath('//img[@class="img-responsive reg-image"]').get_attribute('src')
 print(multiple_urls)

解决方法

您的代码的最后一部分需要几处修改:

在:

for i in range(30):
    multiple_urls = driver.find_element_by_xpath('//img[@class="img-responsive reg-image"]').get_attribute('src')
    print(multiple_urls)

xpath '//img[@class="img-responsive reg-image"]' 引用多个图像,因此您应该使用一个函数来获取这些图像的列表,即“driver.find_elements_by_xpath”而不是“driver.find_element_by_xpath”,我用于一个元素(元素而不是元素)。

因此您需要将该部分修改为:

multiple_urls = driver.find_elements_by_xpath('//img[@class="img-responsive reg-image"]')

现在您可以通过以下方式获取图像数量:

print(len(multiple_urls))

然后,通过以下方式打印 URL:

for url in multiple_urls:
    print(url.get_attribute('src'))
,

要计算网址总数,您必须Mouse Hover 将文本为 Non Fiction 的元素归纳为 WebDriverWait,然后您可以使用以下 visibility_of_all_elements_located()

  • 代码块:

    driver.get("https://www.libertybooks.com/")
    WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//a[@class='cc-btn cc-allow']"))).click()
    ActionChains(driver).move_to_element(WebDriverWait(driver,"//li[@class='top_level dropdown']//a[contains(.,'Non Fiction')]")))).perform()
    print(len(WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,'Non Fiction')]//following::div[1]//ul[contains(@class,'list-unstyled')]//ul//a")))))
    
  • 控制台输出:

    34
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...