python爬虫(六)------pyquery库(二)------PyQuery()、find()、filter()、items()、parents()、children()等方法

python爬虫(五)------pyquery库(一)------attr()、text()、html()、addClass()、hasClass()、removeattr()等方法

(2)查找元素
名称 解释
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 = """
	

我是p1

我是p2

我是p3

"""
>>> 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

你可能感兴趣的:(python爬虫,爬虫,python,pycharm,开发语言)