python - 如何使用 Python 和 lxml 从具有多个属性的“跨度”中提取文本
问题描述
我在尝试使用 Python 和 lxml 从 span 元素中提取一些文本时遇到问题,我已经设法将其用于某些站点但不是全部。所以我有一个函数可以从网站中提取价格,这在以下代码片段中使用 URL 和 xpath 时有效。
def get_price(last_date):
page = requests.get('https://www.komplett.no/product/954922/gaming/gaming-utstyr/gamingskjermer/hp-omen-27-gamingskjerm-z4d33aa')
tree = html.fromstring(page.content)
prices = tree.xpath('//span[@class="product-price-now"]/text()')
currentPrice = 0
for string in prices:
currentPrice = string.strip(",-")
print(currentPrice)
foo(currentPrice, last_date)
但是,当我尝试使用不同的 URL 和具有多个属性的不同 span 元素使用相同的方法时,这是行不通的,这是我无法获取使用文本的 span 元素的代码片段
<span class="DFlfde SwHCTb" data-precision="2" data-value="77954.88534">77,954.89</span>
然后我尝试通过执行以下操作从这个 span 元素中提取文本:
prices = tree.xpath('//span[@class="DFlfde SwHCTb"]/text()')
但这不起作用,知道为什么`?
解决方案
推荐阅读
- javascript - 无需使用 Javascript 按下按钮即可解析输入
- sql-server - 存储过程无法通过 SQLAlchemy 在 SQL Server 中成功运行
- amazon-web-services - route53 故障转移策略记录是否仅对非 aws 可别名资源有用?
- javascript - 使用 HTML 模板从 API 创建页面
- docker - 超级账本作曲家休息服务器:尝试 ping 时出错。错误:没有可查询的对等方。最后一个错误是 Error: 14 UNAVAILABLE: Connect Failed
- python - 创建一个类的实例并根据用户输入重命名它
- c# - 添加到 ToolStripDropDown 时列表框数据源不起作用
- c++ - C++ allocator::allocate 是否应该抛出?
- python - 递归调用导致类函数中的 IndexError
- android-studio - 如何通过Android studio项目同步自定义编译参数?