【PyQuery】PyQuery总结
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,
官方文档地址是:http://packages.python.org/pyquery/。
二、使用方法
|
1
|
from pyquery import PyQuery as pq |
- 可加载一段HTML字符串,或一个HTML文件,或是一个url地址,例:
|
1
2
3
|
d=pq("<html><title>hello</title></html>")d=pq(filename=path_to_html_file) |
注意:此处url似乎必须写全
- html()和text() ——获取相应的HTML块或文本块,例:
|
1
2
3
|
p=pq("<head><title>hello</title></head>")p('head').html()#返回<title>hello</title>p('head').text()#返回hello |
- 根据HTML标签来获取元素,例:
|
1
2
3
4
|
d=pq('<div><p>test 1</p><p>test 2</p></div>')d('p')#返回[<p>,<p>]print d('p')#返回<p>test 1</p><p>test 2</p>print d('p').html()#返回test 1 |
注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块
- eq(index) ——根据给定的索引号得到指定元素
接上例,若想得到第二个p标签内的内容,则可以:
|
1
|
print d('p').eq(1).html() #返回test 2 |
- filter() ——根据类名、id名得到指定元素,例:
|
1
2
3
|
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")d('p').filter('#1') #返回[<p#1>]d('p').filter('.2') #返回[<p.2>] |
- find() ——查找嵌套元素,例:
|
1
2
3
|
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")d('div').find('p')#返回[<p#1>, <p.2>]d('div').find('p').eq(0)#返回[<p#1>] |
- 直接根据类名、id名获取元素,例:
|
1
2
3
|
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")d('#1').html()#返回test 1d('.2').html()#返回test 2 |
- 获取属性值,例:
|
1
2
3
|
d('p').attr('id')#返回my_id |
- 修改属性值,例:
|
1
|
|
把href属性修改为了baidu
- addClass(value) ——为元素添加类,例:
|
1
2
|
d=pq('<div></div>')d.addClass('my_class')#返回[<div.my_class>] |
- hasClass(name) #返回判断元素是否包含给定的类,例:
|
1
2
|
d=pq("<div class='my_class'></div>")d.hasClass('my_class')#返回True |
- children(selector=None) ——获取子元素,例:
|
1
2
3
|
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")d.children()#返回[<p#1>, <p#2>]d.children('#2')#返回[<p#2>] |
- parents(selector=None)——获取父元素,例:
|
1
2
3
4
|
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")d('p').parents()#返回[<span>]d('#1').parents('span')#返回[<span>]d('#1').parents('p')#返回[] |
- clone() ——返回一个节点的拷贝
- empty() ——移除节点内容
- nextAll(selector=None) ——返回后面全部的元素块,例:
|
1
2
3
|
d=pq("<p id='1'>hello</p><p id='2'>world</p><img scr='' />")d('p:first').nextAll()#返回[<p#2>, <img>]d('p:last').nextAll()#返回[<img>] |
- not_(selector) ——返回不匹配选择器的元素,例:
|
1
2
|
d=pq("<p id='1'>test 1</p><p id='2'>test 2</p>")d('p').not_('#2')#返回[<p#1>] |
pyquery还有其他一些用法,这里没有一一整理出来,更多更全的方法可以直接去看它的文档。
【PyQuery】PyQuery总结的更多相关文章
- python爬虫神器PyQuery的使用方法
你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有了一些 ...
- win7下python安装pyquery
安装pyquery之前首先要明确一点,easyinstall 是一款python包管理器,类似于node的npm,用于安装python的扩展包,它安装的包是以*.egg的方式. 要安装pq需要经历以下 ...
- pyQuery
pyquery – PyQuery complete API 选择器基本支持jQuery用法 class pyquery.pyquery.PyQuery(*args, **kwargs) The ma ...
- PyQuery基本操作介绍
PyQuery基本操作介绍 PyQuery为Python提供一个类似于jQuery对HTML的操作方式,可以使用jQuery的语法对html文档进行查询操作. 本文以百度首页为例来介绍PyQuery的 ...
- 芝麻HTTP: Python爬虫利器之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- Python爬虫【解析库之pyquery】
该库跟jQuery的使用方法基本一样 http://pyquery.readthedocs.io/ 官方文档 解析库的安装 pip3 install pyquery 初始化 1.字符串初始化 htm ...
- 一起学爬虫——PyQuery常用用法总结
什么是PyQuery PyQuery是一个类似于jQuery的解析网页工具,使用lxml操作xml和html文档,它的语法和jQuery很像.和XPATH,Beautiful Soup比起来,PyQu ...
- python爬虫之PyQuery的基本使用
PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...
- pyquery 库的方法
初始化 在这里介绍四种初始化方式. (1)直接字符串 from pyquery import PyQuery as pq doc = pq("<html></html> ...
- 爬虫之PyQuery
PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎完全相同. 官方文档:http://pyquery.readthedocs.io/ 安装 pip insta ...
随机推荐
- Magento white screen or how XML can break your site?
Magento white screen or how XML can break your site? by SANDO on 02. OCT, 2012 in MAGENTO, SMALL TIP ...
- CSS知识点补充
一.css框模型概述 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素 1.css内边 ...
- 一个例子深入理解ClassLoader
文件类加载器,该加载器重载了loadClass方法,逻辑是只读取文件来加载类,不委托给父类加载器进行加载 package com.ydd.study.hello.classloader; import ...
- 使用TortoiseGit将代码上传到bitbucket
首先需要有一个bitbucket的账户,这是无疑问的. 比如我本地有一个项目,项目名是 我想把这个项目托管到bitbucket上! 1.首先在bitbucket上创建一个仓库,注意仓库的名字要和项目的 ...
- 2.TCP_IP互联线缆_TCP_UDP报文抓包详解
TCP_IP互联线缆_TCP_UDP报文抓包详解 2.1网线标准 直通线 交叉线 异种设备互联使用直通线 同种设备互联使用交叉线 TCP和UDP 端口寻址 TCP数据格式 TCP三次握手 UDP数据格 ...
- nohup和&的区别
nohup和&的区别http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4241330&fromuid=21288388 ...
- Redis一些基本的操作
代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- jquery实现input输入框实时输入触发事件代码
<input id="productName" name="productName" class="wid10" type=" ...
- :before 和 :after 的内幕 以及伪类 ( 转 )
原文链接 http://www.cnblogs.com/zhujl/archive/2012/05/08/2489411.html ------------------------------- ...
- Reporting services导出的Excel文件避免出现隐藏行列的布局
开发Reporting services时,为了避免在导出的Excel文件中出现隐藏的行和列,必须遵循以下规则: 1.Page header中的Textbox直接必须紧密贴合在一起 2.Page he ...