1.了解

pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好。

2.安装

pip install pyquery

 

3引用

from pyquery import PyQuery as pq

4.初始化

1)字符串

html = """
<html lang="en">
<head>
simple good
<title>PyQuery</title>
</head>
<body>
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul>
</body>
</html>
""" doc = pq(html)

2)url

response = pq(url='https://www.baidu.com')
print(response("head"))

3)文件

#filename参数为html文件路径
test_html = pq(filename = 'test.html')
print(type(test_html))
print(test_html)

5.使用

#-*- coding: UTF-8 -*-
from pyquery import PyQuery as pq html = """
<html lang="en">
<head>
simple good
<title>PyQuery</title>
</head>
<body>
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul>
</body>
</html>
""" doc = pq(html)
#常用的css选择器
print(doc)
#打印id为container的标签
print(doc('#container'))
#打印class为object-1的标签
print(doc('.object-1'))
#打印body
print(doc('body'))
#多种css选择器使用
print(doc('html #container'))
#打印.list的li
print(doc('#container .list li'))
print('-----------------------------------') #伪类选择器
#打印第二个孩子
print(doc('li:nth-child(2)'))
#打印第一个孩子
print(doc('li:first-child'))
#打印最后一个孩子
print(doc('li:last-child'))
#打印含Python的li
print(doc("li:contains('Python')"))
print('-----------------------------------') #查找
#查找id为container
print(doc.find('#container'))
#查找li
print(doc.find('li'))
#查找id为container的孩子
print(doc.find('#container').children())
#查找类为object-2的父亲
print(doc.find('.object-2').parent())
#查找类为object-2的兄弟姐妹
print(doc.find('.object-2').siblings())
print('-----------------------------------') #获取标签属性
#获取attr为class
print(doc.find('.object-2').attr('class'))
#标签内的文本
print(doc.find('.object-1').text())
#去掉li标签
print(doc.find('#container').remove('li').text())
print('----------------------------------')

输出如下:

<html lang="en">
<head>
simple good
<title>PyQuery</title>
</head>
<body>
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul>
</body>
</html>
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul> <li class="object-1">Python</li> <body>
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul>
</body> <ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul> -----------------------------------
<li class="object-2">amazing</li> <li class="object-1">Python</li> <li class="object-3">wonderful</li> <li class="object-1">Python</li> -----------------------------------
<ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul> <li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li> <li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li> <ul id="container" class="list">
<li class="object-1">Python</li>
<li class="object-2">amazing</li>
<li class="object-3">wonderful</li>
</ul> <li class="object-1">Python</li>
<li class="object-3">wonderful</li> -----------------------------------
object-2
Python ----------------------------------

参考:https://www.jianshu.com/p/5def029dbdf8

https://www.jianshu.com/p/770c0cdef481

python系列之(2)PyQuery的用法的更多相关文章

  1. 芝麻HTTP: Python爬虫利器之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  2. Python爬虫利器六之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  3. Python逆向爬虫之pyquery,非常详细

    系列目录 Python逆向爬虫之pyquery pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和h ...

  4. python解析HTML之:PyQuery库的介绍与使用

    本篇大部分转载于https://www.jianshu.com/p/c07f7cd1b548 先放自已自己解析techweb一个网站图片的代码 from pyquery import PyQuery ...

  5. 总结整理 -- python系列

    python系列 python--基础学习(一)开发环境搭建,体验HelloWorld python--基础学习(二)判断 .循环.定义函数.继承.调用 python--基础学习(三)字符串单引号.双 ...

  6. 初探接口测试框架--python系列7

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  7. 初探接口测试框架--python系列2

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  8. 初探接口测试框架--python系列3

    点击标题下「微信」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  9. 初探接口测试框架--python系列4

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  10. 初探接口测试框架--python系列5

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

随机推荐

  1. pycharm 汉化补丁

    找了很久,找到了这个比较好的pycharm汉化补丁包,就分享出来 1. 将解压包解压出来 2 . 复制对应的汉化补丁包到 x:\xxx\JetBrains\PyCharm Community Edit ...

  2. Java学习笔记 - 类方法与代码块的执行顺序

    类的初始化顺序 使用一个简单的父子类例子来做示范,代码执行顺序在代码后有标注. class Parent { public static String p_StaticField = "父类 ...

  3. Python之通配符--提取文件中的内容并输出

    前言:我的学习进度其实没有那么快的,因为现在是网络工程师实习,只有晚上一点时间和周末有空,所以周一到周天的学习进度很慢,今天之所以突然跳到通配符是因为工作需要,大体讲一下我的工作需求:网络工程师就是写 ...

  4. npm install时出现error

    今天启动vue前端时,发现依赖没了.于是乎cmd->npm install->更新了部分依赖后,出现error信息,提示更新依赖失败.很奇怪,原来这个项目都是好的,为啥突然更新下来依赖了呢 ...

  5. Leetcode520Detect Capital检测大写字母

    给定一个单词,你需要判断单词的大写使用是否正确. 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如"USA". 单词中所有字母都不是大写,比如"l ...

  6. SQL _join on 和where的执行顺序

    left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录. inner join: 内连接,又 ...

  7. 2019阿里云开年Hi购季满返活动火热报名中!

    摘要: 在每年开年的这个大幅度优惠促销月,怎样才能花最少的钱配置最特惠的云服务?请看本文! 2019阿里云云上采购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日 ...

  8. 前端(Node.js)(2)-- Node.js开发环境配置

    1.开发环境介绍 1.MEAN Stack 什么是全栈? 负责界面和UI的设计师.负责移动端应用开发的安卓IOS开发工程师.负责服务器端开发的后端程序员.负责数据库开发和管理的数据库工程师.负责服务器 ...

  9. HTML连载58-绝对定位的参考点以及注意事项

    一.绝对定位参考点 1.规律: (1)默认情况下所有的绝对定位的元素,无论有没有祖先元素,都会以body作为参考点. <style> .box1{ width: 300px; height ...

  10. python twisted 的定时调用带参的函数

    无参情况:lc = task.LoopingCall(fun)如果fun带有参数,可以使用functools.partial传递 (fun2 = partial(fun, param1,[...]) ...