使用带有 Python 的 Selenium 抓取文本值
Scraping text values using Selenium with Python
对于 ERP 系统中的每个供应商(供应商总数 = 800+),我正在收集其数据并将此信息导出为 pdf 文件。我将 Selenium 与 Python 一起使用,创建了一个名为 Scraper 的 class,并定义了多个函数来自动执行此任务。函数 gather_vendors 负责抓取并通过从标签元素中提取文本值来执行此操作。
每个供应商都有一个名为 EFT 管理器的部分。 EFT 管理器有 9 行我正在从中提取:
#2 和#3 都有字符串值(划掉机密信息)。但是,#3 returns 无效。我不明白为什么#3 onward returns null 当有文本值要提取时。
每个元素的代码格式相同。
我试过切换帧但没有用。我试图从编辑模式中抓取,但效果不佳。我很好奇是否有人遇到过类似的情况。似乎无论我做什么,我都无法获得某些价值……我将不胜感激任何关于我应该如何进行的建议或见解。
谢谢你。
为什么不尝试使用
find_element_by_class_name("panelList").find_elements_by_tag_name('li')
收集所有li元素。并使用 li.text
检索它们的文本值。除了你说 "returns null"
之外,很难说出你的实际输出是什么
- 尝试使用
visibility_of_element_located
而不是 presence_of_element_located
尝试使用 javascript 元素
获取 textContent
元素=driver.find_element_by_id('txtTemp_creditor_agent_bic')
文本= driver.execute_script("return attributes[0].textContent", 元素)
以下是对我有用的:
- 摆脱 try/except 块。
- 通过 ID(不是 xpath)查找元素。
这让我能够从以前无法提取的元素中提取文本。
您应该将提取网页元素的方式更改为 ID,因为所有方面都提供了不同的 id
。如果你想使用 xpaths,那么你应该尝试 JavaScript 函数来找到它们。
例如
//span[text()='Bank Name']
对于 ERP 系统中的每个供应商(供应商总数 = 800+),我正在收集其数据并将此信息导出为 pdf 文件。我将 Selenium 与 Python 一起使用,创建了一个名为 Scraper 的 class,并定义了多个函数来自动执行此任务。函数 gather_vendors 负责抓取并通过从标签元素中提取文本值来执行此操作。
每个供应商都有一个名为 EFT 管理器的部分。 EFT 管理器有 9 行我正在从中提取:
#2 和#3 都有字符串值(划掉机密信息)。但是,#3 returns 无效。我不明白为什么#3 onward returns null 当有文本值要提取时。
每个元素的代码格式相同。
我试过切换帧但没有用。我试图从编辑模式中抓取,但效果不佳。我很好奇是否有人遇到过类似的情况。似乎无论我做什么,我都无法获得某些价值……我将不胜感激任何关于我应该如何进行的建议或见解。 谢谢你。
为什么不尝试使用
find_element_by_class_name("panelList").find_elements_by_tag_name('li')
收集所有li元素。并使用 li.text
检索它们的文本值。除了你说 "returns null"
- 尝试使用
visibility_of_element_located
而不是presence_of_element_located
尝试使用 javascript 元素
获取 textContent元素=driver.find_element_by_id('txtTemp_creditor_agent_bic') 文本= driver.execute_script("return attributes[0].textContent", 元素)
以下是对我有用的:
- 摆脱 try/except 块。
- 通过 ID(不是 xpath)查找元素。
这让我能够从以前无法提取的元素中提取文本。
您应该将提取网页元素的方式更改为 ID,因为所有方面都提供了不同的 id
。如果你想使用 xpaths,那么你应该尝试 JavaScript 函数来找到它们。
例如
//span[text()='Bank Name']