【发布时间】:2021-01-19 14:28:11
【问题描述】:
我试图抓取我学校的网站,但它无法正常工作。我尝试了很多东西,但大多数时候我通过的 XPATH 是不正确的。 (XPATH 是从 HTML 复制而来的)有很多这样的元素在单击后没有响应,或者无法找到它们。 我的代码:
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
from selenium.webdriver.support import expected_conditions as EC
def element(driver, by_x, html_element):
try:
element = WebDriverWait(driver, 5).until(
EC.presence_of_element_located((by_x, html_element))
)
return element
except:
print("Element not found")
class EduPage:
def __init__(self, name, password, edu_link):
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
PATH = "C:\Programming Modules\Drivers\chromedriver.exe"
self.driver = webdriver.Chrome(executable_path=PATH, options=options)
self.name = name
self.password = password
self.driver.get(edu_link)
def log_in(self):
login_name = element(self.driver, By.ID, "login_Login_1e1")
login_name.send_keys(self.name)
login_pass = element(self.driver, By.ID, "login_Login_1e2")
login_pass.send_keys(self.password, Keys.RETURN)
def go_to_class(self):
online_class = element(self.driver, By.XPATH, "//*[@id='jwb98b9ff6_md']/div/div[2]")
online_class.click()
edupage = EduPage("my name", "my password", "https://gymstrop.edupage.org/login/")
edupage.log_in()
edupage.go_to_class
【问题讨论】:
标签: python selenium web-scraping xpath webdriver