import requests
from lxml import etree
url = 'https://www.huawei.com/cn/?ic_medium=direct&ic_source=surlent'
response = requests.get(url = url)
ht = response.text
tree = etree.HTML(ht)
#也可以解析本地文件
#tree = etree.parse(文件名)
  • ‘//’表示若干层(包括一层)嵌套下, ‘/’表示一层嵌套。
  • 索引从1开始。
  • 以标签结束,则返回元素为内存地址的一个列表。
  • 取文本:/text() 取属性:/@attr 例如:/@href
  • 多重限定条件 a [@href="xxx" and @class = "xxx"]
  • 模糊匹配 div[contains(@class,'xx')] 匹配类名中含有‘xx'的div标签
  • div[starts-with(@class,'xx')] 匹配类名以‘xx'开始的div标签
  • "|"表示或 //img[@class= 'icon-image']/@alt | //img[@class= 'icon-image']/@src
  • "*“ 表示所有,例如:// *[@class = 'xxx'] 匹配所有类名为‘xxx'标签
print(tree.xpath('//div[@class="col-sm-4 external-link"]//p')) 

#[<Element p at 0x38dc350>, <Element p at 0x38dc800>, <Element p at 0x38dc828>, <Element p at 0x38dc850>, <Element p at 0x38c6e18>, <Element p at 0x38c6dc8>] 

#取文本
print(tree.xpath('//div[@class="col-sm-4 external-link"]//p/text()'))
#['手机', '笔记本', '平板', '穿戴 ', '配件', '智能家居'] print(tree.xpath('//div[@class="col-sm-4 external-link"][1]//p/text()'))
#['手机'] #取属性
print(tree.xpath('//div[@class="col-sm-4 external-link"]/a/@href')) #多重限定条件
print(tree.xpath('//a[@href="javascript:;" and @class = "navbar-toggle "] /text()'))
#
['\r\n 手机、笔记本&平板...\r\n ', '\r\n 解决方案&服务\r\n '] #模糊匹配
print(tree.xpath('//div[starts-with(@id,"hw1_g")] //span//text()'))
#['前往 ', 'consumer.huawei.com', ' 查看全部产品', '访问 ', '技术支持中心', '前往 ', 'e.huawei.com', ' 查看全部企业业务', '前往', '技术支持中心', '前往 ', 'carrier.huawei.com', ' 查看全部运营商业务', '前往', '技术支持中心', '查看全部华为云服务', 'www.huaweicloud.com', '前往 ', '帮助中心']

# |
url = 'https://www.coolapk.com/'
response = requests.get(url = url)
ht = response.text
tree = etree.HTML(ht)
print(tree.xpath("//img[@class= 'icon-image']/@alt | //img[@class= 'icon-image']/@src"))

['/static/images/app_icon.png', '应用游戏', '/static/images/huati_icon.png', '话题', '/static/images/kutu_icon.png', '酷图', '/static/images/wode_icon.png', '我的', '/static/images/zhibo_icon.png', '应用吧', '/static/images/shoujiba_icon.png', '手机吧', '/static/images/kankanhao_icon.png', '看看号', '/static/images/shoucangjia_icon.png', '收藏单', '/static/images/yingyongji_icon.png', '应用集', '/static/images/shiyanshi_icon.png', '实验室', '/static/images/zidingyi_icon.png', '自定义设置', '/static/images/houtaichunjing_icon.png', '后台纯净', '/static/images/kaifazhe_icon.png', '开发者平台', '/static/images/shipinbofang_icon.png', '微发现', '/static/images/android_white.png', '安卓下载', '/static/images/iphone_white.png', 'iPhone下载', '/static/images/android_white.png', 'Android下载', '/static/images/iphone_white.png', 'iPhone下载']

最新文章

  1. c语言的头文件-不是c++类的头文件?
  2. OXPattern
  3. CUDA从入门到精通
  4. C++中string类的基本用法
  5. 了不起的分支和循环01 - 零基础入门学习Python007
  6. TCP/IP的网际层协议——ARP
  7. 疯狂Android演讲2 环境配置
  8. 如何设置eclipse在默认模式下打开文件
  9. python 输出重定向
  10. mysql之 mysql 5.6不停机主主搭建(活跃双主基于日志点复制)
  11. Vulkan Tutorial 14 Integration pipeline
  12. Jenkins实现PHP的自动部署
  13. 【洛谷P3389 【模板】高斯消元法】
  14. TCP 服务端接收数据解析工具类
  15. 计算机网络四:网卡与MAC地址
  16. 资深程序员整理出来的Python面试题
  17. python RSA 加密与签名
  18. 【LeetCode】335. Self Crossing(python)
  19. rimraf 跨平台删除文件
  20. 深度学习课程笔记(十八)Deep Reinforcement Learning - Part 1 (17/11/27) Lectured by Yun-Nung Chen @ NTU CSIE

热门文章

  1. python 小数处理
  2. zabbix(10)自动发现规则(low level discovery)
  3. idea创建Web项目(基于Maven多模块)
  4. RK3288 添加普通串口uart1和uart3
  5. 【转】nodejs获取post请求发送的formData数据
  6. AndroidStudio制作Nine-Patch【.9】图片
  7. python小白之矩阵matrix笔记(updating)
  8. YApi内部部署文档
  9. python线程池(转)
  10. logging日志管理