从网页中抓取标题时出现问题

2024-03-29 12:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python和selenium编写了一个脚本,用于解析填充inputbox并清除Go按钮后填充的一些结果。我的剧本在这一刻做得很好。但是,我的主要目标是解析作为Toys & Games可见的容器的标题。你知道吗

这是我迄今为止的尝试(I could not find any idea to make a loop to do the same for all the containers):

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = "https://www.fbatoolkit.com/"

driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
driver.find_element_by_css_selector(".estimator-container .estimator-input").send_keys("25000",Keys.RETURN)
time.sleep(2)
item = driver.find_element_by_css_selector(".estimator-result div").text
print(item)
driver.quit()

我得到的结果是:

4 (30 Days Avg)

我想要的结果是:

Toys & Games
4 (30 Days Avg)

Link to an image在其中,您可以看到它们在该站点中的样子。预期字段也用铅笔标记,让您知道我试图解析的字段的位置。你知道吗


Tags: thetofromimporturltimedriverselenium
1条回答
网友
1楼 · 发布于 2024-03-29 12:21:17

尝试下面的代码以获得所需的输出

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC


url = "https://www.fbatoolkit.com/"

driver = webdriver.Chrome()
driver.get(url)

for container in wait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div[class='chart-container']"))):
    wait(container, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.estimator-input"))).send_keys("25000", Keys.RETURN)
    title = wait(container, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".chart text"))).text
    item = wait(container, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".estimator-result div"))).text
    print(title, item)

driver.quit()

相关问题 更多 >