【BOOK】解析库--pyquery

CSS选择器

1、初始化

html=‘‘‘
<div>
    <ul>
        <li class="item-0">first item</li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
        <li class="item-1 active"><a href="link4.html">fourth item</a></li>
        <li class="item-0 "><a href="link5.html">fifth item</a></li>
    </ul>
</div>
‘‘‘

from pyquery import PyQuery as pq
## 字符串初始化
doc = pq(html)
print(doc(‘li‘))

## URL初始化
doc= pq(url=‘https://cuiqingcai.com‘)
print(doc(‘title‘))

## 文件初始化
doc = pq(filename=‘test.html‘)
print(doc(‘li‘))

2、CSS选择器

# CSS选择器
from pyquery import PyQuery as pq
doc = pq(html)
## id用 #,class用 .
print(doc(‘#container .list li‘))

 

3、查找节点

html=‘‘‘
<div id="container">
    <ul class="list">
        <li class="item-0">first item</li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
        <li class="item-1 active"><a href="link4.html">fourth item</a></li>
        <li class="item-0 "><a href="link5.html">fifth item</a></li>
    </ul>
</div>
‘‘‘

##查找节点
from pyquery import PyQuery as pq
doc = pq(html)
items = doc(‘.list‘)
print(items)

## find() 查找所有地子孙节点
lis = items.find(‘a‘)
print(lis)

## children() 只查找子节点
lis = items.children(‘.active‘)
print(lis)

## parent() 查找父节点
container = items.parent()
print(container)

## parents() 查找祖先节点
ancestor = items.parents()
print(ancestor)

## siblings() 查找兄弟节点
li = doc(‘.item-0.active‘)
print(li.siblings(‘.active‘))

4、遍历 

from pyquery import PyQuery as pq
doc = pq(html)
## 调用items()得到一个生成器,for in 进行遍历
lis = doc(‘li‘).items()
for li in lis:
    print(li)

5、获取内容

from pyquery import PyQuery as pqdoc = pq(html)a = doc(‘.item-0 a‘)print(a)

## 获取 a节点的 href的属性值## attr()只返回第一个结果print(a.attr(‘href‘))print(a.attr.href)

## 通过遍历获取所有的属性值for item in a.items():    print(item.attr(‘href‘))
## 只获取文本 多个节点的文本内容用 空格 间隔开
print(a.text()) ## third item fifth item

## 获取包含 a节点内部所有内容,包含节点,返回第一个 a节点 内部的HTML文本
print(a.html()) # <span class="bold">third item</span>

  

6、节点操作

## 节点操作
## remove()

html =‘‘‘
<div class="wrap">
    Hello World
    <p>呱呱呱</p>
</div>
‘‘‘
## 只想获得Hello World
from pyquery import  PyQuery as pq
doc = pq(html)
wrap = doc(‘.wrap‘)
## 移除 p节点
wrap.find(‘p‘).remove()
print(wrap.text())

  

7、伪类选择器

html=‘‘‘
<div id="container">
    <ul class="list">
        <li class="item-0">first item</li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
        <li class="item-1 active"><a href="link4.html">fourth item</a></li>
        <li class="item-0 "><a href="link5.html">fifth item</a></li>
    </ul>
</div>
‘‘‘

from pyquery import PyQuery as pq
doc = pq(html)

## 第一个li节点
li = doc(‘li:first-child‘)
print(li)

## 最后一个li节点
li = doc(‘li:last-child‘)
print(li)

## 第2个li节点
li = doc(‘li:nth-child(2)‘)
print(li)

## 包含‘second’文本的li节点
li = doc(‘li:contains(second)‘)
print(li)

  

  

  

原文地址:https://www.cnblogs.com/motoharu/p/12557447.html

时间: 2024-11-09 07:45:53

【BOOK】解析库--pyquery的相关文章

爬虫之解析库pyquery

初始化 安装: pip install pyquery 字符串的形式初始化 html = """ <html lang="en"> <head> 简单好用的 <title>PyQuery</title> </head> <body> <ul id="container"> <li class="object-1">Pyth

解析库pyquery使用

初始化 安装: pip install pyquery 字符串的形式初始化 html = """ <html lang="en"> <head> 简单好用的 <title>PyQuery</title> </head> <body> <ul id="container"> <li class="object-1">Pyth

Python3 BeautifulSoup和Pyquery解析库随笔

BeautifuSoup和Pyquery解析库方法比较 1.对象初始化: BeautifySoup库: 1 from bs4 import BeautifulSoup 2 3 html = 'html string......' 4 soup = BeautifulSoup(html, 'lxml') Pyquery库: 1 from pyquery import PyQuery as pq 2 3 # 以字符串初始化 4 html = 'html string...' 5 doc = pq(h

(最全)Xpath、Beautiful Soup、Pyquery三种解析库解析html 功能概括

一.Xpath 解析 ? xpath:是一种在XMl.html文档中查找信息的语言,利用了lxml库对HTML解析获取数据. Xpath常用规则:   nodename :选取此节点的所有子节点   // :从当前节点选取子孙节点   / :从当前节点选取子节点   . : 选取当前节点   .. : 选取当前节点父节点  @ : 选取属性 1.初始化html etree.parse()是初始化html构造一个XPath解析对象: etree.tostring()是修复html文件中代码,把缺的

第四部分 解析库的使用(XPath、Beautiful Soup、PyQuery)

在网页节点中,可以定义id.class或其他属性.节点间有层次关系,网页中要通过XPath或CSS选择器定位一个或多个节点.在页面解析时,可利用XPath或CSS选择器提取某个节点,再调用相应方法获取它的正文内容或者属性,就可提取到想要的信息.在python中常用的解析库有lxml.Beautiful Soup.pyquery等.使用这些库可以很大程度上提高效率. 一 使用XPath解析库 XPath,全称XML Path Language,即XML路径语言,是一门在XML文档中查找信息的语言.

解析库之beautifulsoup,pyquery

Beautifulsoup模块 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Beautiful Soup 3 目前已经停止开发. 官网推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4 官网推荐使用lxml作为解析器,因为效率更高. 在Python

解析库之re、beautifulsoup、pyquery

BeatifulSoup模块 一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Beautiful Soup 3 目前已经停止开发,官网推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4 #安装 Beautiful Soup pip instal

第三篇:解析库之re、beautifulsoup、pyquery(转)

一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Beautiful Soup 3 目前已经停止开发,官网推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4 #安装 Beautiful Soup pip install beautifulsoup

安装解析库

背景说明 抓取网页代码后,下一步是从网页中获取信息. 提取信息的方法有很多,可以使用正则表达式,但是写起来比较繁琐.也可以使用强大的解析库. 此外,还有非常强大的解析方法,比如Xpath解析和CSS选择器解析等. 环境说明 [[email protected] Python-3.6.6]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.4 (Maipo) [[email protected] Python-3.