python - Selenium 与 python 没有找到特定的链接
问题描述
我希望从通过 javascript 自动生成其内容的网站上抓取特定链接。当我手动检查网站时,我可以轻松找到我想要抓取的链接。您可以在下面看到一个示例。基本上,我想找到一种方法来自动找到
<a href="/bsbe/document/JURE210005412/format/xsl/part/L?oi=5wDyMgzh8g&sourceP=%7B%22source%22%3A%22TL%22%2C%22sort%22%3A%22date%22%7D"...>
标记后<li class="toolpane_list_entry toolpane_list_entry_right">
例子:
<li class="toolpane_list_entry toolpane_list_entry_right">
<a href="/bsbe/document/JURE210005412/format/xsl/part/L?oi=5wDyMgzh8g&sourceP=%7B%22source%22%3A%22TL%22%2C%22sort%22%3A%22date%22%7D" class="button bnext__button button--next bnext__button--next" id="docnextbuttontop" aria-disabled="false" aria-controls="id_docPanelContainer">
<span>
<span>Nächster Treffer</span>
<em class="sicon" aria-hidden="true">
<svg focusable="false" class="svg-icon-chevron_right" height="100%" viewBox="0 0 24 24" width="100%" xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor" d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path>
<path d="M0 0h24v24H0z" fill="none"></path>
</svg>
</em>
</span>
</a>
但是,当我使用 selenium 和 python 加载此页面时,<a href...>
我正在寻找的页面不存在(见下文)。
<li class="toolpane_list_entry toolpane_list_entry_right">
<span class="button bnext__button button--nextDisabled bnext__button--nextDisabled">
<span>Nächster Treffer</span>
<em aria-hidden="true" class="sicon">
<svg class="svg-icon-chevron_right" focusable="false" height="100%" viewbox="0 0 24 24" width="100%" xmlns="http://www.w3.org/2000/svg">
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" fill="currentColor"></path>
<path d="M0 0h24v24H0z" fill="none"></path>
</svg>
</em>
</span>
</li>
如您所见,整个 <a href ... > 标签不存在。
这是我的python代码:
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from bs4 import BeautifulSoup
import os
from selenium import webdriver
options = FirefoxOptions()
options.add_argument("--headless")
firefox_driver = os.getcwd() +"\\geckodriver.exe"
driver = webdriver.Firefox(options=options, executable_path=firefox_driver)
driver.get("https://gesetze.berlin.de/bsbe/document/JURE210005730")
# returns empty list
driver.find_elements_by_class_name("button bnext__button button--next bnext__button--next")
soup_file=driver.page_source
soup = BeautifulSoup(soup_file)
print(soup.find_all("li", {"class":"toolpane_list_entry toolpane_list_entry_right"}))
你知道可能是什么问题吗?你认为有办法提取链接吗?我可以提供任何其他信息来查找问题吗?
谢谢
解决方案
Tried doing this ?
driver.findElement(By.xpath("//div[contains(@class,'my-class')]"));
in your case , change the classname
and tag
driver.findElement(By.xpath("//li[contains(@class,'toolpane_list_entry toolpane_list_entry_right')]"));
推荐阅读
- python - 如何在另一个 Windows 10 上部署 python flask 应用程序?
- c++ - 指针值数组在函数结束时被破坏,有人能告诉我为什么吗?
- php - PHP str_replace 替换字符串中不匹配的文本
- python - 如何建立 LSTM 网络?
- excel - 根据单元格的数字格式设置条件格式?
- android - 如何在 Visual Studio (Android) 中包含 OpenGLES 3
- scala - 这段教授子类型多态性的 Scala 代码是什么意思?
- python - 使用函数转换日期时间列
- julia - 在Julia中尝试通过`/`和`|`拆分字符串时如何使用拆分功能
- go - 如何编写干净的集成测试