python系列之(2)PyQuery的用法
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的用法的更多相关文章
- 芝麻HTTP: Python爬虫利器之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- Python爬虫利器六之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- Python逆向爬虫之pyquery,非常详细
系列目录 Python逆向爬虫之pyquery pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和h ...
- python解析HTML之:PyQuery库的介绍与使用
本篇大部分转载于https://www.jianshu.com/p/c07f7cd1b548 先放自已自己解析techweb一个网站图片的代码 from pyquery import PyQuery ...
- 总结整理 -- python系列
python系列 python--基础学习(一)开发环境搭建,体验HelloWorld python--基础学习(二)判断 .循环.定义函数.继承.调用 python--基础学习(三)字符串单引号.双 ...
- 初探接口测试框架--python系列7
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列2
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列3
点击标题下「微信」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...
- 初探接口测试框架--python系列4
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列5
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
随机推荐
- 浏览器在IE8 以下时显示提示信息,提示用户升级浏览器
<!--[if lt IE 8]> <div style="background: #eeeeee;border-bottom: 1px solid #cccccc;col ...
- liunx定时删除文件(产生的日志.........)
linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...
- 利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
/// <summary> /// 返回JSon数据 /// </summary> /// <param name="JSONData">要处理 ...
- 学习Python笔记---if 语句
条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python根据条件测试的值True还是False来决定是否执行if语句中的代码.如果条件测试的值为Tr ...
- 【cml】wosi-demo
推荐一个cml项目,https://github.com/Bowen7/wosi-demo 呃呃,运行了项目只能够说开发者好牛逼,数据处理很厉害, 这个是最后的结果,然后要进行效果查看,估计你得等明天 ...
- c++中merge的操作
merge:将两个有序序列合并成一个新的序列,并对新的序列排序 所在库:<algorithm> 注意:排序规则必须和原序列规则相同.存储时下标从0开始. 函数参数:merge(first1 ...
- android studio离线打包mui应用
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/foolish0421/article/details/54618754首先从官网http://www ...
- 【JZOJ5071】【GDSOI2017第二轮模拟】奶酪 树形dp
题面 CJY很喜欢吃奶酪,于是YJC弄到了一些奶酪,现在YJC决定和CJY分享奶酪. YJC弄到了n-1块奶酪,于是他把奶酪挂在了一棵n个结点的树上,每根树枝上挂一块奶酪,每块奶酪都有重量. YJC和 ...
- Direct2D 第1篇 最简单的D2D程序
原文:Direct2D 第1篇 最简单的D2D程序 编译之前,得先安装DirectX SDK #include <windows.h> #include <d2d1.h> #i ...
- pytest fixture中scope试验,包含function、module、class、session、package
上图是试验的目录结构 conftest.py:存放pytest fixture的文件 import uuid import pytest @pytest.fixture(scope="mod ...