lxml库用于在html字符串中使用xpath语言提取标签属性和内容等。

1 安装

pip install lxml

2 使用

from lxml import etreeele=etree.HTML("html字符串")
result=ele.xpath("xpath语法串")

对于list形式的元素,有两种提取方式

  • 每次提取某个属性的所有值
  • 先得到list,再每次获取单个对象的所有属性值。此时需要用./表名路径

3 示例

爬取豆瓣电影排行榜

import requests
import json
from lxml import etree# 一次性获取所有电影的信息
def xpath_html1():url='https://movie.douban.com/chart'header={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"}html=requests.get(url,headers=header)print(html.text)# 使用etree获取elementele=etree.HTML(html.text)# 获取电影名movie_name=[i.replace(' ','') for i in ele.xpath("//div[@class='indent']/div/table//div[@class='pl2']/a/text()")]print(movie_name)# 获取评分movie_rating=ele.xpath("//div[@class='indent']/div/table//div[@class='pl2']/div/span[@class='rating_nums']/text()")print(movie_rating)# 获取上映时间movie_date = ele.xpath("//div[@class='indent']/div/table//div[@class='pl2']/p/text()")print(movie_date)# 获取电影封面movie_poster=ele.xpath("//div[@class='indent']/div/table//a[@class='nbg']/img/@src")print(movie_poster)# 先得到电影list,再每次解析其中的每个电影详情
def xpath_html2():url = 'https://movie.douban.com/chart'header = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"}html = requests.get(url, headers=header)print(html.text)# 使用etree获取elementele = etree.HTML(html.text)# 获取电影listlist=ele.xpath("//div[@class='indent']/div/table")movie_list=[]for movie in list:item={}name = movie.xpath(".//div[@class='pl2']/a/text()")item['name'] = name[0].replace("/","").replace("\n","").strip()rating=movie.xpath(".//div[@class='pl2']/div/span[@class='rating_nums']/text()")item['rating'] = rating[0]poster=movie.xpath(".//a[@class='nbg']/img/@src")item['poster']=poster[0]movie_list.append(item)print(json.dumps(movie_list,ensure_ascii=False))#转为json字符串,可以直接输出到json文件中if __name__=='__main__':# xpath_html1()xpath_html2()


Notice

应博友的要求,创建了一个QQ群,方便大家学习交流,群内也会经常分享一下学习资源。有兴趣的小伙伴可以加群哦!

python模块专题——10.lxml相关推荐

  1. python模块--BeautifulSoup4 和 lxml

    BeautifulSoup4和lxml 这两个库主要是解析html/xml文档,BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器. Python标准库中的H ...

  2. Python模块EasyGui专题学习

    Python模块EasyGui专题学习 1.msgbox(msg,title,ok_button="OK",image="",root=None) 代码 imp ...

  3. 在CentOS 6.3/6.5 64bit上为python 2.7.10安装pycurl模块

    公司线上都是使用CentOS 6.3 64bit版本,我家里装的是CentOS 6.6,它们默认的python版本是2.6.6.而我编写的几个python脚本是在Ubuntu 14.04 64bit上 ...

  4. python白名单验证是什么意思_第10.5节 使用__all__定义Python模块导入白名单

    一.引言 <第10.4节 Python模块的弱封装机制>介绍了Python模块的的弱封装机制,除了使用弱封装机制来从一定程度上防止导入特定成员外,Python模块中还提供可另外一种类似白名 ...

  5. python包和模块推荐_对于Python包和模块的10个常识清单

    有同砚题目对于模块与包的题目,特给新人总结的对于Python包与模块的10个常识清单. 0.一个模块(module)就是一个py文件,模块的名字就是该文件的名字(不包罗后缀) 1.一个 包(packa ...

  6. 10个有趣python模块

    目录 一.说明 二.应用模块 2.1 文章裁剪Pyperclip 2.2 表情符Emoji 2.3 Howdoi 2.4 Wikipedia 2.5 New types at runtime 2.6 ...

  7. Python容器专题 - 列表(list)

    Python容器专题 - 列表(list) 导读:原文Python容器内容较长不便于阅读和查询,因而被分割称为了多个模块,本文只其中之一.在本文中,详细讲述了Python语言中的列表(list)及其用 ...

  8. python 模块 导入机制 模块搜索 Python包 发布python模块或程序

    python 模块 python模块:以.py结尾的代码文件.        顶层文件: 程序执行入口        模块文件1        模块文件2        模块文件3 在python中一 ...

  9. Python模块(自己整理并不完整)

    PY核心模块方法 ******************** os模块: os.remove() 删除文件  os.unlink() 删除文件  os.rename() 重命名文件  os.listdi ...

最新文章

  1. Xilinx ISE 调用 ModelSim SE 库编译
  2. python条件赋值
  3. struts2,实现Ajax异步通信
  4. 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句
  5. 非广告--推荐Dynatrace:树立数字化性能管理DPM标杆
  6. android adb sdk下载地址,Android SDK 下载和安装
  7. 华硕笔记本电池软件_成色配置都还不错的二手华硕7代 i5 笔记本电脑 只卖1599元 想要的 快进来看看...
  8. 银行服务器linux系统,银行操作系统
  9. 变量修改器(modifier)
  10. obs弹幕助手android版,OBS Studio 使用全屏弹幕教程
  11. 平板电脑android系统,平板电脑是什么系统
  12. android模拟器mac版本下载,MaxMac电脑版怎么下载 安卓模拟器电脑版下载地址
  13. 皇帝成长计划html文件打不开,伯爵皇帝成长计划解决存档问题XP/win7/win8适用
  14. 2022-2027年中国中医药行业发展监测及投资战略研究报告
  15. Flume之Failover和Load balancing原理及实例
  16. 使用MATLABsimulinkstm32mat_targetstm32cubemx开发stm32
  17. 计算机一级wps练习题,计算机一级WPS练习题
  18. 这份pdf成功让我拿下了蚂蚁金服、字节跳动、小米等大厂的offer
  19. 比特、二进制与十进制的关系
  20. Python实现进制转换

热门文章

  1. Thinkphp5汉字转拼音
  2. 7月新能源车冰火两重天:吉利 上汽大众增速最高 风神新能源占比最高
  3. java计算机毕业设计沙县小吃点餐系统源码+数据库+系统+lw文档+mybatis+运行部署
  4. 古月居 ROS 21 讲1
  5. LM331作F/V转换器时阻容参数要注意的问题
  6. 树的后根遍历图解_图解 6 种树,你心中有数吗。。。
  7. 数据策略产品设计:北极星指标
  8. sas数据集怎么导出_SAS写入数据集
  9. Tomcat SEVERE: Failed to initialize end point associated with ProtocolHandler [“http-bio-8080“] 异常处理
  10. 还记得这首是什么歌吗?