xpath简单实用
一、xpath 基本语法
/html
/html/head/title 绝对路径(一层层的查找)
/html//title 相对于当前节点
//title/./../.. . 当前节点 ..父节点
../following-sibling::dd[1]/a 上一级的兄弟节点
//head/meta/@http-equiv 提取标签属性值
//title/text() 提取开闭标签之间的文本内容
/ 隔开的的是节点(除了尾部出现的之外)
二、节点修饰语法(使用[]修饰节点,[]跟在节点之后)
1.通过索引进行节点修饰(索引从0开始)
//body/div[3]/div/div[1]/div[position()>10]
//body/div[3]/div/div[1]/div[last()]
2.通过标签属性与属性值修饰节点
//div[@id="aa_tag_121536487"]
//div[@id]
3.通过子节点的值修饰当前节点
//span[i>2000]
4.通过部分包含修饰节点
//div[contains(@id,"aa_tag_")]
5.通过内容寻找链接(一般用于下一页)
//div[text()="下一页"]/@href
6.节点的通配使用
//*[contains(text(),"下一")]
7.xpath语法的并用
path1|xpath2
三、url拼接
In [1]: import urllib
In [2]: a='http://baidu.com?kw=100'
In [3]: b='?abc=123'
In [4]: urllib.parse.urljoin(a,b)
Out[4]: 'http://baidu.com?abc=123'
四、scrapy中url拼接
response.urljoin(node.xpath('uri'))
xpath简单实用的更多相关文章
- jQuery的几种简单实用效果
许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
- php简单实用的操作文件工具类(创建、移动、复制、删除)
php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) { // 原目录,复制到的目录 $dir = opend ...
- 基于Bootstrap简单实用的tags标签插件
http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件
- C#_简单实用的翻页
简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...
- 简单实用的Windows命令(一)
前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...
- 简单实用的Windows命令(二)
昨天简单的记录了几个非常简单实用的Windows命令,不过我又想起来还有两个我在实际的工作中也是经常用到的命令——PING和IPCONFIG,不过我在工作中的使用都是非常简单的,用PING命令检测对应 ...
- iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...
随机推荐
- Linux下SSH远程连接断开后让程序继续运行解决办法
一.screen安装 yum install screen #CentOS安装 sudo apt-get install screen #ubuntu安装 二.screen常用命令 screen ...
- 小程序云开发--云函数上传文件或图片 base64
云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端, ...
- .NET in Browser - Blazor
什么是Blazor Blazor 是一个实验性的. NET web 框架, 使用 C# 和 HTML 在任何浏览器中不需要插件即可运行 WebAssembly 程序集. 什么是WebAssembly ...
- HTML5外包团队:HTML5 Canvas使用教程
canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...
- Windows 循环根据进程名称 存在则删除该进程
@echo off:Looptasklist | findstr /i "javaw.exe" >nul 2>nul && (taskkill -f / ...
- 1047 Integer Inquiry
String 大数加法模板 #include<stdio.h> #include<string> #include<iostream> using namespac ...
- 4 - BFS & Topological Algorithm
615. Course Schedule https://www.lintcode.com/problem/course-schedule/description?_from=ladder&& ...
- 从mysql向HBase+Phoenix迁移数据的心得总结
* 转载请注明出处 - yosql473 - 格物致知,经世致用 mysql -> HBase + Phoenix 1.总体方案有哪些? 1)通过Sqoop直接从服务器(JDBC方式)抽取数据到 ...
- 创建springboot项目
springboot 就是为简化spring的创建 配置 部署 运行 而创建的. springboot 直接引入依赖jar包 就行了,无须配置xml 一 创建springboot 1.创建一个mave ...
- 使用js实现放大镜效果
点击预览放大镜效果,图片比较大,因为需要精细的图片去凸显放大的效果,请耐心 可以通过滑轮控制放大倍数,由于图片太大 如果放大镜没有出现 可刷新一下网页