diff --git "a/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.html" "b/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.html" new file mode 100644 index 0000000..0aa3fd9 --- /dev/null +++ "b/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.html" @@ -0,0 +1,23 @@ + + + + + + + Document + + + + + + + \ No newline at end of file diff --git "a/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.py" "b/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.py" new file mode 100644 index 0000000..b9a0154 --- /dev/null +++ "b/17_\350\247\243\346\236\220_xpath\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.py" @@ -0,0 +1,45 @@ +# 浏览器中xpath插件快捷键:ctrl+shift+x + +from lxml import etree + +# xpath解析 +# (1)本地文件 etree.parse +# (2)服务器响应的数据 response.read().decode('utf-8') ***** etree.HTML() + +# xpath解析本地文件 +tree = etree.parse('17_解析_xpath的基本使用.html') + +print(tree) + +# tree.xpath('xapth') + +# 查找ul下面的li +# //表示其子孙后代 /表示其直接子节点 +# li_list = tree.xpath('//body/ul/li') + +# 查找所有有id属性的li标签 +# text() 获取标签内容 +# li_list = tree.xpath('//ul/li[@id]/text()') + +# 找到id为l1的li标签 注意引号的问题 +# li_list = tree.xpath('//ul/li[@id="l1"]/text()') + +# 查找到id为l1的li标签的class的属性值 +# li_list = tree.xpath('//ul/li[@id="l1"]/@class') + +# 查询id里面包含l的li标签 模糊查询 +# li_list = tree.xpath('//ul/li[contains(@id,"l")]/text()') + +# 查询id值以c开头的li标签 +# li_list = tree.xpath('//ul/li[starts-with(@id,"c")]/text()') + +# 查询id为l1和class为c1的数据 逻辑与运算 +# li_list = tree.xpath('//ul/li[@id="l1" and @class="c1"]/text()' + +# +li_list = tree.xpath('//ul/li[@id="l1"]/text() | // ul/li[@id="l2"]/text()') + + +# 判断列表的长度 +print(li_list) +print(len(li_list))