lxml解析数据为html
标签:tps 字符串 pytho 直接下载 报错 错误 encoding download asc
from lxml import etree
text = ‘‘‘
登录/注册
下载豆瓣客户端
豆瓣 6.0 全新发布
×
豆瓣
扫码直接下载
iPhone
·
Android
‘‘‘
# 方法1 :解析一个html格式的字符串
# requests获取响应,content中获取到的html页面时正常的页面
#etree.HTML()对html字符串进行解析为html文件
html = etree.HTML(text)
print(html)
result = etree.tostring(html,encoding=‘utf8‘).decode(‘utf8‘)
# print(result)
# 方法2 :解析html 文件
#parse 将html导入python解析
html_2 = etree.parse(r‘./test.html‘)
result_2 = etree.tostring(html_2,encoding=‘utf8‘).decode()
# print(result_2)
# 方法3 :自定义解析器,解析html文件。解决方法2可能解析失败的问题
‘‘‘
原因:有些直接从网站下载下来的html文件有标签缺失,使用etree.parse()方法解析会报错。
默认使用的xml解析器,当解析html页面时会造成错误,需要自定义解析器
解决方法:自定义一个解析器,将自定义的解析器作为参数传递给parse
‘‘‘
# 自定义一个解析器
paser = etree.HTMLParser(encoding=‘utf8‘)
html_3 = etree.parse(r‘./test.html‘,parser=paser)
result_3 = etree.tostring(html_3,encoding=‘utf8‘).decode()
print(result_3)
lxml解析数据为html
标签:tps 字符串 pytho 直接下载 报错 错误 encoding download asc
原文地址:https://www.cnblogs.com/wsy0202/p/12927315.html
评论