Python的jQuery类似库
项目描述
pyquery: Python的jQuery类似库
pyquery 允许您在XML文档上执行jQuery查询。API尽可能地与jQuery相似。pyquery使用lxml进行快速的XML和HTML操作。
这不是(或者至少目前不是)一个用于生成或与JavaScript代码交互的库。我只是喜欢jQuery API,并在Python中缺少它,所以我告诉自己“嘿,让我们在Python中实现jQuery”。这就是结果。
该项目正在GitHub上的一个Git仓库中积极开发。我有给任何想要的人推送访问权限然后审查他们所做的事情的政策。所以如果你想贡献,请给我发电子邮件。
请在github问题跟踪器上报告错误。
快速入门
您可以使用PyQuery类从字符串、lxml文档、文件或URL中加载XML文档
>>> from pyquery import PyQuery as pq >>> from lxml import etree >>> import urllib >>> d = pq("<html></html>") >>> d = pq(etree.fromstring("<html></html>")) >>> d = pq(url=your_url) >>> d = pq(url=your_url, ... opener=lambda url, **kw: urlopen(url).read()) >>> d = pq(filename=path_to_html_file)
现在d就像jQuery中的$
>>> d("#hello") [<p#hello.hello>] >>> p = d("#hello") >>> print(p.html()) Hello world ! >>> p.html("you know <a href='https://pythonlang.cn/'>Python</a> rocks") [<p#hello.hello>] >>> print(p.html()) you know <a href="https://pythonlang.cn/">Python</a> rocks >>> print(p.text()) you know Python rocks
您可以使用jQuery中可用的伪类,但这些伪类在CSS中不是标准的,例如::first :last :even :odd :eq :lt :gt :checked :selected :file
>>> d('p:first') [<p#hello.hello>]
请参阅http://pyquery.rtfd.org/以获取完整文档
新闻
2.0.1 (2024-08-30)
重大变更:似乎不再可能使用XML文件与HTML解析器一起使用,因此不再进行测试
停止支持Python 3.7
2.0.0 (2022-12-28)
重大变更:以"http://"或"https://"开头的输入(如PyQuery("http://example.com")将不再获取URL的内容。希望保留旧行为的用户应切换到PyQuery(url="http://example.com")。
添加nextUntil方法
.remove()不再在删除的元素位置插入一个空格
修复.html()输出中顶级元素文本的转义问题
支持(并要求)cssselect 1.2+
停止支持Python 3.5/3.6
1.4.3 (2020-11-21)
不再使用通用轮子
1.4.2 (2020-11-21)
修复在调用PyQuery(“<textarea></textarea>”).text()时引发的异常
python2不再受支持
1.4.1 (2019-10-26)
这是带有py2支持的最新版本
删除py33, py34支持
网络爬虫改进:默认超时和会话支持
添加根据规范序列化表单相关元素的API方法
在查询文本区域文本/值时包括HTML标记
1.4.0 (2018-01-11)
.text()的重构以匹配firefox行为。
1.3.0 (2017-10-21)
删除一些未维护的模块:pyquery.ajax和pyquery.rules
代码清理。不再使用python2.6/python3.2所需的丑陋技巧。
在CI上使用python3.6运行测试
将method参数添加到.outer_html()
1.2.17 (2016-10-14)
PyQuery('<input value="">').val()是''
PyQuery('<input>').val()是''
1.2.16 (2016-10-14)
.attr('value', '')不再删除value属性
<input type="checkbox">没有value="..."的.val()是'on'
<input type="radio">没有value="..."的.val()是'on'
<select>没有<option selected>的值是他们的第一个<option>(或如果没有选项则为None)
1.2.15 (2016-10-11)
.val()不应该引发异常
停止支持py26
通过返回self改进.extend()
1.2.14 (2016-10-10)
修复<textarea>和<select>的val(),以匹配jQuery行为
1.2.13 (2016-04-12)
注意显式支持Python 3.5
1.2.12 (2016-04-12)
make_links_absolute现在负责处理空白
添加了伪选择器:has()
将cookies参数添加为requests的允许参数
1.2.11 (2016-02-02)
在PyQuery副本上保留命名空间属性
当http响应代码为2XX时,不再引发错误
1.2.10 (2016-01-05)
修复#118:在outer_html方法中实现了lxml.etree.tostring的使用
修复#117:如果HTTP状态码不等于200,则引发HTTP错误
修复#112:make_links_absolute不再应用于表单操作
修复#98:contains行为像jQuery
1.2.9 (2014-08-22)
PyQuery自定义函数支持关键字参数
修复#78:items必须注意父元素
修复#65 PyQuery.make_links_absolute()不再创建不存在的‘href’属性
修复#19. is_()已损坏。
修复 #9. .replaceWith(PyQuery 元素) 产生错误
移除对官方 Python 3.2 的支持(主要因为第三方半依赖问题)
1.2.8 (2013-12-21)
修复 #22:当文件包含无效 XML 时,通过文件名打开失败
在 .remove_class() 中修复了错误
1.2.7 (2013-12-21)
使用 pep8 名称来命名方法,但保留 camel case 方法的别名。例如:remove_attr 和 removeAttr 都有效。修复 #57
如果没有文本节点,.text() 现在返回空字符串而不是 None。修复 #45
修复 #23:removeClass 为之前没有类属性的元素添加了类属性
1.2.6 (2013-10-11)
README_fixt.py 未包含在发布中。修复 #54。
1.2.5 (2013-10-10)
cssselect 兼容性。请参阅 https://github.com/SimonSapin/cssselect/pull/22
测试改进。不再需要 eth 连接。
修复 #55
1.2.4
迁移到 GitHub。因此,一些文件从 .txt 重命名为 .rst
添加 .xhtml_to_html() 和 .remove_namespaces()
使用 requests 获取 URL(如果可用)
使用 restkit 的代理而不是 Paste(Paste 将与 py3 一起死亡)
允许打开 https URL
不再支持 python2.5(可能仍能工作,但测试已损坏)
1.2.3
允许在 .filter() 回调中传递此参数
添加 .contents() 和 .items()
添加 tox.ini
错误修复:修复 #35 #55 #64 #66
1.2.2
修复 cssselectpatch 以匹配 cssselect 的新实现。修复问题 #62,#52 和 #59(白浩宇)
修复问题 #37(Caleb Burns)
1.2.1
允许使用自定义 css 转换器。
修复问题 44:XML 文档中的大小写问题
1.2
PyQuery 现在使用 cssselect。请参阅问题 43。
修复问题 40:将 .html() 的额外参数传递给 lxml.etree.tostring
1.1.1
小版本发布。包含测试文件,因此您可以从 tarball 运行测试。
1.1
修复问题 30、31、32 - py3 改进 / webob 1.2+ 支持
1.0
修复问题 24
0.7
Python 3 兼容
添加 __unicode__ 方法
添加 root 和 encoding 属性
修复问题 19、20、22、23
0.6.1
将 README.txt 移动到包根目录
添加 CHANGES.txt 并将其添加到 long_description
0.6
添加 PyQuery.outerHtml
添加 PyQuery.fn
添加 PyQuery.map
更改 PyQuery.each 的行为以反映 jQuery API
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分布
构建分发
pyquery-2.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0194bb2706b12d037db12c51928fe9ebb36b72d9e719565daba5a6c595322faf |
|
MD5 | 8a165d20082c1c39322816f7b4ae3725 |
|
BLAKE2b-256 | ae4879e774ea00b671d08867f06d9258203be81834236c150ac00e942d8fc4db |
pyquery-2.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aedfa0bd0eb9afc94b3ddbec8f375a6362b32bc9662f46e3e0d866483f4771b0 |
|
MD5 | d394bcc2645f16693567ca374f36ef66 |
|
BLAKE2b-256 | 76f55067b48012967ea166b9bd0a015b69e0560e4c6e7c06f28d9bab8f9dd10b |