简单提取网页中的数据时发现的
当通过xpath方式提取出需要的数据的text文本后想要转为字符串,但出现lxml.etree._ElementUnicodeResult的数据类型不能序列化,在网上查找到很多说是编码问题Unicode编码然后解码什么的;有些是(导入的xml库而不是lmxl库)[https://blog.51cto.com/u_16213415/11531934],后来在(一个博文)[https://www.cnblogs.com/biyeee/p/9429392.html]中,作者直接把数据转为浮点flaot型的数据,那么直接强制转换为string应该也是没问题的。
代码中可以看出
import requests
import json
from lxml import etree
# from jsonpath import jsonpath
url = '' # 需要写入自己的url
headers = {
"user-agent":"" ##填写自己的浏览器代理
}
ret = requests.get(url,headers=headers)
rel_html = etree.HTML(ret.text)
# print(ret.text)
# 选择合适的xpath条件
end = rel_html.xpath('//*[@id="userSkin"]/div[1]/div[2]/div[1]/div/div[2]/div[2]/ul/li[4]/a/div[1]/text()')
print(end)
print(type(end[0]))
xml_str = str(end[0])
print(xml_str.replace(',',''))
xpath中的语法导致最终获取对象不同
一个是标签节点,一个是节点下的文本,导致最终结果的数据类型不同