爬虫 2 XPath 和 pyquery
XPath
1.常用规则
| 表达式 | 描述 |
| nodename | 选取此节点的所有子节点 |
| / | 从当前节点选取直接子节点 |
| // | 从当前节点选取子孙节点 |
| . | 选取当前节点 |
| .. | 选取当前节点的父节点 |
| @ | 选取属性 |
2.etree
python 3.5以上没有了整合的库,通过from lxml import etree 调用,pycharm会报错,但是功能还是能够实现
etree.HTML() 对html文本进行初始化
etree.tostring() 输出修正后的代码 (bytes类型)
etree.parse(文本名,etree.HTMLparser()) 读取文本解析
3.xpath
//* 选取所有节点
//ul/li 选取子节点或者子孙节点
//li[@class="item"] 属性匹配
//a/@href 获取属性
当遇到classname有多个值,可以使用contain()方法
XPath提供了100多个函数,具体可以参考:
http://www.w3school.com.cn/xpath/xpath_functions.asp
pyquery
1.调用方法
from pyquery impoPyQuery
1)PyQuery(str)字符串初始化
2)PyQuery(url = ‘’)URL初始化
与
PyQuery(requests,get(url).text)功能相同
3) PyQuery(filename = ‘’)文件初始化
2.基本 css选择器
from pyquery import PyQuery as pq
doc = pq(html)
print(doc('#container .list li'))
类型为PyQuery类型
查询函数和jQuery的用法相同
find() 查询节点的所有子孙节点 可传入css选择器筛选符合条件的节点
children() 查询子节点 可传入css选择器筛选符合条件的节点
parent() 查询父节点 可传入css选择器筛选符合条件的节点
parents() 查询祖先节点 可传入css选择器筛选符合条件的节点
siblings() 查询兄弟节点 可传入css选择器筛选符合条件的节点
items() 得到一个生成器,实现遍历
.attr.属性 获取属性
text() 获取文本,改变节点内部的内容
addClass() 添加指定class属性
removeClass() 删除指定class属性
attr() 修改属性等
html() 改变节点内部的内容
remove() 移除指定节点
pyquery强大的一点是它能支持伪类选择器
标签名:first-child 第一个节点
标签名:last-child 最后一个节点
标签名:ntn-child(2) 第二个节点
标签名:gt(2) 第三个节点之后的此标签节点
标签名:ntn-child(2n) 偶数位置的节点
标签名:contains(文本内容) 包含此文本内容的节点
爬虫 2 XPath 和 pyquery的更多相关文章
- Python爬虫利器六之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- 一起学爬虫——使用selenium和pyquery爬取京东商品列表
layout: article title: 一起学爬虫--使用selenium和pyquery爬取京东商品列表 mathjax: true --- 今天一起学起使用selenium和pyquery爬 ...
- 爬虫常用Xpath和CSS3选择器对比
爬虫常用Xpath和CSS3选择器对比 1. 简介 CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大.CSS中的空白符' '和Xpath的'//'都表示 ...
- python爬虫:XPath语法和使用示例
python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- 非常全的一份Python爬虫的Xpath博文
非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...
- 爬虫神器xpath的用法(三)
xpath的多线程爬虫 #encoding=utf-8 ''' pool = Pool(4) cpu的核数为4核 results = pool.map(爬取函数,网址列表) ''' from mult ...
- 爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影
本教程由"做全栈攻城狮"原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程.一方面把我所习得的知识分享出来,希望能对初学者有所帮助.另一方面总结自己所学,以备以后查看. ...
- 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)
版权声明:本文为博主原创文章,未经博主允许不得转载. 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
随机推荐
- ASP.NET: Cookie会话丢失,Session超时配置
问题描述: asp.net应用中web.config的SessionState节点:原先是 <sessionState mode="InProc" timeout=" ...
- 视频外同步信号研究---fvh
视频外同步信号研究---fvh 一个时钟周期有两个edge,分别称为:(1)Leading edge=前一个边沿=第一个边沿,对于开始电压是1,那么就是1变成0的时候:对于开始电压是0,那么就是0变成 ...
- Open Source 开发工具集
Open Source 开发工具集 转自:http://www.linuxforum.net原作者:gogoliu(Pooh-Bah) 编辑器: vi:老牌编辑器,在各个unix和unix-like平 ...
- Windows 7 X64平台编译LLVM+clang
1 源码包 去LLVM官方网站下载最新的源码,Windows平台下载三个即可(2019.04.24版本为LLVM 8.0.0): LLVM source code (.sig) Clang sourc ...
- 工控随笔_03_西门子_Step7项目打开后CPU显示问号解决方法
我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. ...
- Python基础之条件语句和循环
条件语句 Python中的条件语句分为 if ...else . if ...elif...else 以及if ...else 的嵌套使用: username = input('请输入您的用户名:' ...
- 在MyEclipse使用Git新建分支,并上传分支---图文教程
1.选中项目,右键--->Team--->Switch To--->New Branch: 2.在弹出的窗口中,填写新建的分支名称,如下图 3.当前分支就会变成新建分支“test” ...
- 高性能网络通信框架 HP-Socket v5.2.1
项目主页 : http://www.oschina.net/p/hp-socket 开发文档 : http://www.docin.com/p-2079016612.html 下载地址 : https ...
- 用kickstart创建逻辑卷管理LVM分区
创建两个物理分区分别给Boot和Swap分区,剩余的空间作LVM. Partition Size Name------------------------------/boot ...
- mvc开发中DTO,DO,FROM的区别
DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...