我正在尝试从一个网站提取数据。我需要在搜索框中输入值,然后找到详细信息。它会生成一个表格。生成表格后,需要将详细信息写入文本文件或插入数据库。我正在尝试以下事情。
网站:https://commtech.byu.edu/noauth/classSchedule/index.php搜索文本:“C S 142”
示例代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
c_options = Options()
c_options.add_experimental_option("detach", True)
s = Service('C:/Users/sidat/OneDrive/Desktop/python/WebDriver/chromedriver.exe')
URL = "http://saasta.byu.edu/noauth/classSchedule/index.php"
driver = webdriver.Chrome(service=s, options=c_options)
driver.get(URL)
element = driver.find_element("id", "searchBar")
element.send_keys("C S 142", Keys.RETURN)
search_button = driver.find_element("id", "searchBtn")
search_button.click()
table = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@id='sectionTable']")))
rows = table.find_elements("xpath", "//tr")
for row in rows:
cells = row.find_elements(By.TAG_NAME, "td")
for cell in cells:
print(cell.text)
我正在使用PyCharm 2022.3来编码和测试结果。我的代码没有打印任何东西。请帮助我解决这个问题,将数据提取到文本文件和SQL数据库表中。
2条答案
按热度按时间au9on6nz1#
下面的代码打印所需表的内容。
您需要等待元素变为可单击状态,以防您要单击它们或向它们发送文本,或者等待可见性,以防您要阅读它们的文本内容。
输出为:
型
f87krz0w2#
试试这个:
您正在等待表,这是正确的,但表已完全加载(
td
尚未加载)。然后至少等待
td
元素中包含任何内容