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

Trouble with data types after scraping a website with lxml and xpath

我正在抓取一个网站的数据并最终提取出数字。问题是当我尝试在 Python 中对返回为

的数据执行逻辑函数时
class 'lxml.etree._ElementStringResult'

我的问题是我能否以某种方式将此数据转换为字符串或整数,以便我可以执行逻辑语句?

代码如下:

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

print callType

这是输出:

76

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

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

这是我的输出:

<class 'lxml.etree._ElementStringResult'>
76

因此,与其尝试使用 "int" 来完成控制语句,不如说它是一种不同的类型。我试过对变量进行类型转换,但它仍然是相同的数据类型。希望这有助于...

xpath() 可能 return 一个 _ElementStringResult 的列表,而不是普通的 Python 字符串。有时您可能希望拥有 _ElementStringResults 的原因是,与 strs 不同,它们会记住它们的 parents(它们可以通过 getparent 方法访问)。

您只需将 object 传递给 strint.

即可将其转换为字符串或整数
for span in item.xpath('.//span[contains(@id, "lblSignal")]'):
    callType = int(span.text_content())