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

HTML code differences when trying to parse code

提问人:CuriousRhino 提问时间:7/21/2023 最后编辑:user16217248CuriousRhino 更新时间:8/1/2023 访问量:40

问:

我在使用 Selenium 解析网站时遇到了 HTML 问题。我有父变量(单个消息),以及我尝试提取的嵌套类(名称、内容、时间戳)。当我尝试通过 PyCharm 运行程序时,出现问题,出现错误说找不到父变量。做.我没有看到该变量以及其他周围的代码。这很奇怪,因为当我检查元素时,我看到父变量像白天一样清晰!我还通过直接从浏览器中从第一行开始剪切所有 HTML 来仔细检查,当我搜索时,我也找不到父变量。我不知道它为什么隐藏,也不知道当我解析时它去了哪里。从我所看到的来看,有两个嵌套的缓存生成,另一种理论是它是一个动态网页,它是一个聊天室等等。代码如下:html = driver.page_source!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 解析

评论

0赞 Klaus D. 7/21/2023
与其描述您的代码,不如向我们展示相关部分。
0赞 user16217248 8/1/2023
你确定是正确的吗?"message flex-property msg-box ""message flex-property msg-box"

答: 暂无答案