2018-09-14XML——了解一下^_^

2018-09-14  本文已影响0人  棕色试剂瓶

知己知彼,百战不殆。 -------------------------《孙子兵-谋攻篇》

XML是什么?_?

那什么是XPath呢?

它是一门再XML文档中查找信息的语言,用来再XML中对节点和属性进行遍历。

常用的XPath开发环境:

接下来,操练起来,孩儿们!!!

首先安装lxml

pip install lxml

接着导入它

from lxml import etree #这样写后面会出现红色波浪线,但是可以正常使用

我们可以下main两行代码解决

import lxml.html
etree = lxml.html.etree

常用的方法

  1. etree.parse()
    读取xml文件,结果为xml对象(object)
  2. etree.HTML(string_html)
    将字符串形式的html文件转化为xml对象
  3. etree.tostring(htmlelemt, encoding = "utf-8").decode("utf-8")
    etree.tostring(html,encoding="utf-8", pretty_print = True).decode()
    按字符串系列化HTML文档
    (注意:这里的tostring的s是小写的,不要写出大写的)

选择器

表达式 描述
nodename 选取此节点内的所有子节点。
/ 从根节点选取(选取直接子节点)
// 在全局搜索,不考虑位置(当用在中间位置是标识所有子孙节点)
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性(/div[@class = "container"])

实战——用lxml读取html文件

import lxml.html
etree = lxml.html.etree

parser = etree.HTMLParser(encoding = "utf-8")
htmlelement = etree.parse("mafengwo.html", parser = parser)
print(htmlelement)# 此时是对象类型
# 这句代码只在研究时有用,正常时没用
html_string = etree.tostring(htmlelement, encoding = "utf-8").decode("utf-8")
print(html_string)
# 读取innerText
links = htmlelement.xpath("//h3/a[@class='_j_search_link']")
for link in links:
    print(link.text)

# 读取属性的值
with open("mafengwo.html", "r+") as fp:
    content = fp.read()
    html = etree.HTML(content)
    titles = html.xpath("//div/div/span/@title")
    for title in titles:
        print(title)


上一篇下一篇

猜你喜欢

热点阅读