学习网址: http://c.biancheng.net/python_spider/lxml.html
一、lxml库
lxml 库能够了高效地解析 HTML/XML 文档
from lxml import etree
html_str='''<div>
<ul>
<li class="item1"><a href="link1.html">Python</a></li>
<li class="item2"><a href="link2.html">Java</a></li>
<li class="site1"><a href="c.biancheng.net">C语言中文网</a>
<li class="site2"><a href="www.baidu.com">百度</a></li>
<li class="site3"><a href="www.jd.com">京东</a></li>
</ul>
</div>'''
html = etree.HTML(html_str)
# 书写xpath表达式,提取a标签内的文本信息
xpath_bds1 = '//a/text()'
# 书写xpath表达式,提取文本最终使用text()
xpath_bds2='//a/@href'
r_list1 = html.xpath(xpath_bds1)
r_list2 = html.xpath(xpath_bds2)
# result = etree.tostring(html)
# print(result.decode('utf-8'))
print(r_list1)
print(r_list2)
二、 json模块常用方法
方法 | 参数介绍 / 用途 |
---|---|
json.loads() | 将json 格式的字符串转换成 Python 对象(比如列表、字典、元组、整型以及浮点型) |
json.dumps() | 将 Python 对象转换成 JSON 字符串 |
json.dump (object,f,inden=0,ensure_ascii=False) | 将 Python 对象(字典、列表等)转换为 json 字符串,并将转换后的数据写入到 json 格式的文件中 ,因此该方法必须操作文件流对象。object:Python 数据对象。f:文件流对象。indent:格式化存储数据。ensure_ascii:是否使用 ascii 编码,当数据中出现中文的时候,需要将其设置为 False。 |
json.load() | 操作文件流对象,与 dump() 恰好相反,它表示从 json 文件中读取 JSON 字符串,并转换为 Python 对象 |
区别:json.load() 与 json.dump() 操作的是文件流对象ÿ