使用lxml和xpath抓取网站后数据类型出现问题

Dun*_*age 3 python xpath lxml

我正在抓取一个网站获取数据并最终取出数字.问题是当我尝试在Python上执行逻辑函数时,它返回的数据

class 'lxml.etree._ElementStringResult'
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以将这些数据以某种方式将其转换为字符串或int,以便我可以执行我的逻辑语句吗?

这是代码:

callType = item.xpath('.//span[contains(@id, "lblSignal")]')[0].text_content()

print callType
Run Code Online (Sandbox Code Playgroud)

这是输出:

76
Run Code Online (Sandbox Code Playgroud)

当我在数据上尝试控制语句时没有任何反应.我认为这是因为我在不正确的类型上尝试逻辑.

callType = item.xpath('.//span[contains(@id, "lblSignal")]')[0].text_content()
print type(callType)
print callType
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

<class 'lxml.etree._ElementStringResult'>
76
Run Code Online (Sandbox Code Playgroud)

因此,它不是试图用"int"来完成控制语句,而是一种不同的类型.我已经尝试对变量进行类型转换,但它仍保持相同的数据类型.希望这可以帮助...

unu*_*tbu 5

xpath()可能会返回一个_ElementStringResults 列表,而不是普通的Python字符串.您有时希望拥有_ElementStringResults的原因是,与str他们不同的是,他们记住了他们的父母(他们通过该getparent方法可以访问它们).

只需将对象传递给str或,就可以将其转换为字符串或整数int.

for span in item.xpath('.//span[contains(@id, "lblSignal")]'):
    callType = int(span.text_content())
Run Code Online (Sandbox Code Playgroud)