python爬虫(五)------pyquery库(一)------attr()、text()、html()、addClass()、hasClass()、removeattr()等方法
名称 | 解释 |
---|---|
base_url | 返回当前HTML文档的URL,如果不可用,则返回“无” |
encoding | 返回根元素的编码 |
root | 返回XML根元素 |
PyQuery(选择器) | 获取某个元素,pq(“#d p”):后期id为d的p标签 |
items(selector=None) | 拿到多个标签,可以遍历输出各种属性和文本 |
eq(index) | 返回具有所提供索引的元素,下标从0开始 |
children(selector=None) | 获取当前元素的子元素 |
parents(selector=None) | 获取当前元素的父元素 |
prevAll(selector=None) | 获取当前元素的前面所有的兄弟元素 |
nextAll(selector=None) | 获取当前元素的后面所有的兄弟元素 |
siblings(selector=None) | 获取当前元素的前面和后面所有的兄弟元素 |
filter(selector) | 查找元素(需要包含自身) |
find(selector) | 从自身向下遍历的选择器查找元素 |
is_(selector) | 如果选择器至少匹配一个当前元素,则返回true,否则返回false(需要包含自身) |
>>> import requests
from pyquery import PyQuery
>>> resp = requests.get("http://www.baidu.com")
>>> html = PyQuery(resp.text)
>>> print(html.base_url)
None
>>> html.encoding
'ISO-8859-1'
>>> html.root
<lxml.etree._ElementTree object at 0x000002484FF8E048>
>>> html = """
"""
>>> ps = pq("#d p").items()
>>> for p in ps:
... print(p.attr.class_)
...
p
p p2
p
>>> ps = pq.items("#d p")
>>> for p in ps:
... print(p.text())
...
我是p1
我是p2
我是p3
>>> pq("#d p").eq(2).text()
'我是p3'
>>> pq.children()
[<p.p>, <p.p.p2>, <p#p3.p>, ]
>>> pq.children(".di")
[<div.di>]
>>> pq.children(".di a")
[<a>]
>>> pq.children(".di a").parents()
[<div#d>, ]
>>> pq.children(".di a").parents(".di")
[<div.di>]
>>> pq("#d p").eq(1).prevAll()
[<p.p>]
>>> pq("#d p").eq(1).nextAll()
[<p#p3.p>, ]
>>> pq("#d p").eq(1).nextAll("p")
[<p#p3.p>]
>>> pq("#d p").eq(1).siblings()
[<p.p>, <p#p3.p>, ]
>>> pq("#d p").eq(1).siblings("p")
[<p.p>, <p#p3.p>]
>>> pq.find('.p')
[<p.p>, <p.p.p2>, <p#p3.p>]
>>> pq.find('#p3')
[<p#p3.p>]
>>> pq.filter('#p3')
[]
>>> pq.filter('#d #p3')
[<p#p3.p>]
>>> pq.filter('#d p')
[<p.p>, <p.p.p2>, <p#p3.p>]
>>> pq.filter('#d a')
[<a>]
>>> pq.is_(".p")
False
>>> pq.is_("#d .p")
True