用lxml解析xml和html页面并在python中请求包
问题描述:
我一直试图通过在python中使用lxml和请求包来解析xml和html页面。我使用下面的代码用于此目的:用lxml解析xml和html页面并在python中请求包
在python:
import requests
import lxml.etree
url = ""
req = requests.get(url)
tree = html.fromstring(req.content)
root = tree.xpath('')
for item in root:
print(item.text)
此代码工作正常,但对于某些网页无法正常显示的内容和需要设置编码UTF-8,但我不不知道如何在此代码中添加集编码
答
requests
自动解码服务器中的内容。
重要的是理解:
r.content
- 包含尚未解码的响应内容
r.encoding
- 包含响应的内容编码信息
r.text
- 根据它已经解码的版本official docr.content
正在关注Unicode标准,我习惯r.text
,但你仍然可以手动解码使用
r.content.decode(r.encoding)
希望它可以帮助您的内容。
我尝试tree = html.fromstring(req.text),但带有编码声明的Unicode字符串不受lxml支持,并且不起作用 – Snaicher
适合我。我尝试了ISO-8859-1,UTF-8页面。你使用哪个lxml版本?你能提供一个你请求页面的链接吗? –
url =“http://asretebar.com/rss/feed/?c=1&m=6” req = requests.get(url) #req.encoding =“utf-8” #req.content.decode (req.encoding) tree = html.fromstring(req.text) root = tree.xpath('channel/item/title') for root in root: print(item.text) – Snaicher