【问题标题】:How to specify elements in selenium selector如何在硒选择器中指定元素
【发布时间】:2019-12-19 14:03:31
【问题描述】:

这是我的有效代码:

name = selector.xpath('//title/text()').get()
print(name)

以上代码的输出: No broker | Crunchbase

但是对于以下代码,它不起作用:

##Intro of the company
intro = selector.xpath('//a[contains(@class,"component--field-formatter field-type-text_long ng-star-inserted")]/text()')
print(intro)

以上代码的输出:

[<Selector xpath='//a[contains(@href,"location_identifiers")]/text()' data=' Bangalore'>, <Selector xpath='//a[contains(@href,"location_identifiers")]/text()' data=' Karnataka'>, <Selector xpath='//a[contains(@href,"location_identifiers")]/text()' data=' India'>, <Selector xpath='//a[contains(@href,"location_identifiers")]/text()' data=' India'>]

这是网址: https://www.crunchbase.com/organization/nobroker#section-overview

如何才能在第二个代码中仅获得印度卡纳塔克邦班加罗尔? 我认为问题出在 /text? 第一个 /text 有效,但第二个无效。我应该如何使其仅获取文本? 非常感谢!! 如果您能向我推荐一些关于如何使用硒选择器抓取 sn-ps 数据的文档,我们将不胜感激。

谢谢!

【问题讨论】:

    标签: python html selenium xpath


    【解决方案1】:

    您似乎获得了一个网络元素列表。您需要导航列表并从元素中获取文本属性

    elements = selector.xpath('//a[contains(@class,"component--field-formatter field-type-text_long ng-star-inserted")]/text()')
    for element in elements:
        print(element.get_property('innerText'))
    

    【讨论】:

      【解决方案2】:

      您正在取回一个存储在内存中某处的 Web 元素。只需在末尾添加.text

      intro = selector.xpath('//a[contains(@class,"component--field-formatter field-type-text_long ng-star-inserted")]/text()').text
      print(intro)
      

      如果它是一个列表,你可以做同样的事情,但在一个 for 循环中

      intro = selector.xpath('//a[contains(@class,"component--field-formatter field-type-text_long ng-star-inserted")]/text()')
      for i in intro:
          print(i.text)
      

      【讨论】:

      • 它说:'SelectorList' 对象没有属性'text'
      • he resuelto con tu código
      猜你喜欢
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      相关资源
      最近更新 更多