python使用lxml分析网页

首先得引入lxml

1
2
3
4
5
#xpath为
frome lxml import etree
#cssselector为
import lxml.html
#cssselector使用起来简单但功能比xpath少

cssselector

1
2
3
4
5
6
7
8
9
10
11
12
13
tree = lxml.html.fromstring('你获取的网页源代码文件或变量')
css = tree.cssselect('要选择的内容')

#例如tree.cssselect('div.word-info > div.pronounces > span.word-audio')
#选择器选择的结果为list

css.text_content()

#表示选择的内容

css.attrib['要表示的标签属性']

#如css.attrb['class']表示的就是所选择内容的class属性

如果选择的内容换行符太多可以使用split表示成list去除

说明例子
选择所有标签*
选择<a>标签a
选择所有class=”link”的标签.link
选择class=”link”的<a>标签a.link
选择id=”home”的<a>标签a#home
选择父元素为<a>标签的所有<span>标签a > span
选择<a>标签内部的所有<span>标签a span
选择title属性为”Home”的所有<a>标签a[title=Home]

xpath

1
2
3
4
selector=etree.HTML('你获取的网页源代码文件或变量')
css = selector.xpath('要选择的内容')
#xpath可直接表示
#xpath可选择并表示属性

xpath由于内容太多,可以直接参考官方文档