我试图用python请求模块获取一个远程页面,重建一个DOM树,做一些处理并将结果保存到文件中。当我获取一个页面,然后将其写入文件时,一切都正常(我可以稍后在浏览器中打开一个html文件,它会正确呈现)。在
但是,如果我创建了一个pyquery对象并进行了一些处理,然后使用str转换来保存它,则会失败。特别是,在保存的源代码的脚本标记中修改了诸如&;等特殊字符(这是由应用pyquery引起的),它会阻止页面正确呈现。在
这是我的代码:import requests
from lxml import etree
from pyquery import PyQuery as pq
user_agent = {'User-agent': 'Mozilla/5.0'}
r = requests.get('http://www.google.com',headers=user_agent, timeout=4)
DOM = pq(r.text)
#some optional processing
fTest = open("fTest.html","wb")
fTest.write(str(DOM))
fTest.close()
所以,问题是:如何确保特殊字符在应用pyquery之后不会被转义?我想它可能与lxml(pyquery的父库)有关,但是经过冗长的在线搜索和对不同对象序列化方法的实验,我还是没有成功。也许这也和unicode处理有关?!在
先谢谢你!在