Xpath安装及使用

简介: Xpath安装及使用

1、xpath

1.1、xpath环境

浏览器下载xpath插件

chrome插件下载

提取码:5iex

python安装lxml库

pip install lxml -i https://pypi.douban.com/simple

1.2、xpath使用

1.etree.parse() 解析本地文件

html_tree = etree.parse(‘xxx.html’)


2.etree.HTML() 服务器响应文件

html_tree = etree.HTML(response.read().decode(‘utf-8’))


3.html_tree.xpath(xpath路径)


4.路径获取

鼠标右键查看网页源代码

快捷键 Ctrl + Shift + x 打开xpath工具

在Query框输入路径,在Result中显示定位的值


1.3、xpath基本语法

1.路径查询

//:查询所有子孙节点,不考虑层级关系

/:找直接子节点

2.谓词查询

//div[@id]

//div[@id=“maincontent”]

3.属性查询

//@class

4.模糊查询

//div[contains(@id,“he”)]

//div[start-with(@id,“he”)]

5.内容查询

//div/h1/text()

6.逻辑运算

//div[@id=“head” and @class=“s_down”]

//title | //price

1.4、应用实例:爬取站长素材图片

import urllib.request
from lxml import etree
def create_request(page):
   if (page == 1):
      url = 'https://sc.chinaz.com/tupian/meinvtupian.html'
   else:
      url = 'https://sc.chinaz.com/tupian/meinvtupian_' + str(page) + '.html'
   headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
   }
   request = urllib.request.Request(url=url,headers=headers)
   return request
def get_content(request):
   response = urllib.request.urlopen(request)
   content = response.read().decode('utf-8')
   return content
def down_load(content):
   # 解析网页源码
   tree = etree.HTML(content)
   name_list = tree.xpath('//div[@id="container"]//a/img/@alt')
   src_list = tree.xpath('//div[@id="container"]//a/img/@src')
   # 下载图片到本地
   for i in range(len(name_list)):
      name = name_list[i]
       src = src_list[i]
       url = 'https:' + src
       urllib.request.urlretrieve(url=url,filename='./images/'+name+'.jpg')
if __name__ == '__main__':
   start_page = int(input("请输入起始页码:"))
   end_page = int(input("请输入结束页码:"))
   for page in range(start_page, end_page + 1):
        request = create_request(page)
        content = get_content(request)
        down_load(content)

2、jsonpath

文章推荐:https://blog.csdn.net/luxideyao/article/details/77802389

3、bs4

相关文章
|
Python
pycharm安装汉化包失败解决方法
pycharm安装汉化包失败解决方法
3047 0
|
存储 搜索推荐 安全
ISO/IEC 23001:数字版权管理的加密标准(三)
ISO/IEC 23001:数字版权管理的加密标准(三)
269 0
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
563 1
用python执行js代码:PyExecJS库
|
6月前
HarmonyOS NEXT 实战系列06-路由
鸿蒙开发中,页面路由(@ohos.router)和组件导航(Navigation)都支持应用内页面跳转。页面路由更易上手,适合初学者,未来多用于混合场景;而组件导航灵活性更强,支持更丰富的动效与生命周期管理,且更适合一次开发多端部署。 **Router模块**通过URL实现页面切换,提供`router.pushUrl`(压栈跳转,保留当前页状态)和`router.replaceUrl`(替换当前页并销毁)两种模式。同时支持`Standard`(多实例)和`Single`(单实例)实例模式,可传递参数至目标页面。 掌握这些基础,即可进行多页面应用开发。
|
10月前
|
人工智能 Kubernetes API
3分钟掌握合同比对,思通数科开源工具让法律审查更高效
思通数科AI多模态平台提供开放API,支持与法律机构常用的ERP、CRM等企业系统集成。平台具备Docker、Kubernetes兼容性,支持二次开发和模块扩展,使用户能灵活应对不同业务需求。
|
数据可视化 开发工具 C++
Qt Creator 界面
Qt Creator 界面
|
自然语言处理 定位技术 API
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
本文介绍如何在Android中从图片提取地理位置信息并转换为地址。首先利用`ExifInterface`获取图片内的经纬度,然后通过`Geocoder`将经纬度转为地址。注意操作需在子线程进行且考虑多语言支持。
870 4
|
API 开发者
Mailchimp邮箱API发送邮件的效果如何
Mailchimp的邮箱API让开发者能集成其功能,实现邮件自动化发送和营销管理。它提供丰富的模板、设计工具和强大的分析,助用户创建吸引人的邮件并追踪效果。通过获取API密钥并参照文档,开发人员可将Mailchimp整合进应用。Mailchimp的优秀客户支持和效果评估工具确保了良好的发送体验,是高效发送和优化邮件的优选方案。
|
消息中间件 安全 Kafka
Python IPC机制全攻略:让进程间通信变得像呼吸一样自然
【8月更文挑战第2天】在编程领域中,进程间通信(IPC)作为连接独立运行单元的关键桥梁,其重要性不言而喻。本文以Python为例,深入探讨了IPC的各种机制。首先对比了管道与消息队列:管道作为一种基础IPC机制,适用于简单场景;而消息队列通过第三方库如RabbitMQ或Kafka支持更复杂的多生产者多消费者模型,具备高并发处理能力。
394 1
|
Web App开发 前端开发 测试技术
Xpath Helper 在新版Edge中的安装及解决快捷键冲突问题
Xpath Helper 在新版Edge中的安装及解决快捷键冲突问题
771 0