尝试解析代码时的 HTML 代码差异

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

我在使用 Selenium 解析网站的 HTML 时遇到问题。我有父变量(单个消息),以及我试图提取的嵌套类(名称、内容、时间戳)。当我尝试通过 PyCharm 运行程序时出现问题,我收到错误消息说找不到父变量。完成

html = driver.page_source
后。我没有看到该变量以及其他周围的代码。这很奇怪,因为当我检查元素时,我看到父变量一目了然!我还通过从第一行开始直接从浏览器中删除所有 HTML 进行了双重检查,当我搜索时,我也找不到父变量。我不知道它为什么隐藏,也不知道当我解析时它去了哪里。据我所见,有两个
!doctype html
,其中嵌套的被缓存生成,另一种理论是它是一个动态网页,其中有一个聊天室等等。代码如下:

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

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.website.com/chat")
driver.find_element("name", "val[login]").send_keys("[email protected]")
time.sleep(3)
driver.find_element("name", "val[password]").send_keys("Password")
time.sleep(3)
driver.find_element("id", "_submit").send_keys(Keys.ENTER)
time.sleep(3)
driver.get("https://website.com/chat")
time.sleep(60)

messages = driver.find_element(By.CLASS_NAME, "message flex-property msg-box  ")

for message in messages:
    username = message.find_element(By.CLASS_NAME, "username").text
    content = message.find_element(By.CLASS_NAME, "content").text
    print(username,content)

我收到以下错误:

No such element exception
Traceback (most recent call last):
  
line 20, in <module>
    messages = driver.find_element(By.CLASS_NAME, "message flex-property msg-box  ")

line 740, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]

line 346, in execute
    self.error_handler.check_response(response)

line 245, in check_response
    raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".message flex-property msg-box  "}
python selenium-webdriver beautifulsoup pycharm html-parsing
© www.soinside.com 2019 - 2024. All rights reserved.