使用 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 字符串。有时您可能希望拥有 _ElementStringResult
s 的原因是,与 str
s 不同,它们会记住它们的 parents(它们可以通过 getparent
方法访问)。
您只需将 object 传递给 str
或 int
.
即可将其转换为字符串或整数
for span in item.xpath('.//span[contains(@id, "lblSignal")]'):
callType = int(span.text_content())
我正在抓取一个网站的数据并最终提取出数字。问题是当我尝试在 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 字符串。有时您可能希望拥有 _ElementStringResult
s 的原因是,与 str
s 不同,它们会记住它们的 parents(它们可以通过 getparent
方法访问)。
您只需将 object 传递给 str
或 int
.
for span in item.xpath('.//span[contains(@id, "lblSignal")]'):
callType = int(span.text_content())