Xpatch语法练习
from lxml import etree
html='''
<div>
<ul id="column_1">
<li class="line-1"><a href="link1.html">a标签1列1行内容</a>li标签1列1行内容</li>
<li class="line-2"><a href="link2.html">a标签1列2行内容</a>li标签1列2行内容</li>
<li class="line-message"><a href="link3.html">a标签1列3行内容</a>li标签1列3行内容</li>
<li class="line-4"><a href="link4.html">a标签1列4行内容</a>li标签1列4行内容</li>
<li id="line-5"><a href="link5.html">a标签1列5行内容</a>li标签1列5行内容</li>
<li id="code-1">第6行内容</li>
第一列文本内容
</ul>
<ul id="column_2" >
<li class="line-1"><a href="link1.html">a标签2列1行内容</a>li标签2列1行内容</li>
<li class="line-2"><a href="link2.html">a标签2列2行内容</a>li标签2列2行内容</li>
<li class="line-message"><a href="link3.html">a标签2列3行内容</a>li标签2列3行内容</li>
第二列文本内容
</ul>
</div>
'''
#使用etree解析html网页内容
执行代码:selector=etree.HTML(html)
# #查询‘li’下所有的元素
# list_all = selector.xpath('//div/ul/li[2]/a/text()')
# print(list_all)
# #1查找出已知html中[li]中第1个[li]标签下的a元素文本信息
# list_2 = selector.xpath('//li[1]/a/text()')[0]
# print(list_2)
#2通过class属性定位查找出已知html中[li]中的第三个[li]标签属性和a元素文本信息
# list_2 =selector.xpath('//li[@class="line-message"]')
# print(list_2)
# list_2 = selector.xpath('//li[@class="line-message"]/a/text()')[0]
# print(list_2)
#3通过href属性定位查找出已知Html中[li]中第4个[li]标签属性及a元素文本信息
# list_2 = selector.xpath('//*/li[4]/a/@href')[0]
# print(list_2)
#4:提取出含有‘line-’的li下的a元素内容
# list_2 = selector.xpath('//li[starts-with(@class,"line-")]')
# print(list_2)
#4-方式2(循环获取):提取出含有‘line-’的li下的a元素
# list_2 = selector.xpath('//li[starts-with(@class,"line-")]')
# all_a = []
# for c in list_2:
# all_a.append(c.xpath('a/text()')[0])
# print(all_a)
#5:提取出所有UL下的所有文本信息
# list_2 = selector.xpath('string(//ul)')
# print(list_2)
# #删除左右空格,使用空格替换\n
# list_2 = list_2.strip().replace('\n','')
# print(list_2)