PyQuery基本操作介绍
PyQuery基本操作介绍
PyQuery为Python提供一个类似于jQuery对HTML的操作方式,可以使用jQuery的语法对html文档进行查询操作。
本文以百度首页为例来介绍PyQuery的一些基本操作。

初始化pyquery
from pyquery import PyQuery as pq
doc = pq(url='http://www.baidu.com')
print(type(doc))
<class 'pyquery.pyquery.PyQuery'>
# 获取导航链接的父元素(id='u1')
products = doc('#u1')
print(type(products))
<class 'pyquery.pyquery.PyQuery'>
link_index_first = products('a:first')
link_index_last = products('a:last')
link_index_custom = products('a:eq(2)')
print(type(link_index_first))
<class 'pyquery.pyquery.PyQuery'>
可以通过PyQuery的text()方法来获取其对应的文字
print(link_index_first.text())
print(link_index_last.text())
print(link_index_custom.text())
糯米
更多产品
hao123
也可以通过PyQuery的attr()方法来获取元素的属性
print(link_index_first.attr('name'))
tj_trnuomi
下面来遍历所有导航按钮。 P.S. 注意此时link的类型是“lxml.html.HtmlElement”
# 遍历所有导航链接,并显示链接的name属性和在网页上显示的文字
links = products('a')
for link in links:
id_name = link.get('name')
text = link.text
print('Name: {0: <15}\tText: {1: <15}'.format(id_name, text))
Name: tj_trnuomi Text: 糯米
Name: tj_trnews Text: 新闻
Name: tj_trhao123 Text: hao123
Name: tj_trmap Text: 地图
Name: tj_trvideo Text: 视频
Name: tj_trtieba Text: 贴吧
Name: tj_login Text: 登录
Name: tj_settingicon Text: 设置
Name: tj_briicon Text: 更多产品
下面介绍一下初始化PyQuery时的另外两种参数
- 直接转换字符串
d = pq("<html></html>")
d = pq(etree.fromstring("<html></html>"))
- 读取文件
d = pq(filename=path_to_html_file)
另外,在处理需要编码的文件时可以使用如下的方法:
from lxml.html import HTMLParser, fromstring
UTF8_PARSER = HTMLParser(encoding='utf-8')
with open(page, encoding='utf-8') as filehandler:
file_contents = filehandler.read()
doc = pq(fromstring(file_contents, parser = UTF8_PARSER))
PyQuery基本操作介绍的更多相关文章
- vim编辑器基本操作介绍
vim编辑器基本操作介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 可能很多小伙伴都听说过vi编辑器或是vim编辑器.它们是Unix和Linux世界最流行的编辑器之一,他们的特 ...
- SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍
今天给大家介绍一下SpringBoot中Redis的set.map.list.value等基本操作的具体使用方法 上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对 ...
- Activiti工作流(一)之基本操作介绍
工作流的概念: 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或 ...
- 基于MyBatis3.0.6的基本操作介绍
每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 .SqlSessionFactory本身是由SqlSessionFa ...
- tensorflow基本操作介绍
1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...
- JDBC基本操作介绍
一 .JDBC主要的API介绍 JDBC为开发人员提供了一套标准的API,都是由JAVA语言编写的类和接口.用于连接数据库和执行SQL语句.JDBC也是JAVA核心类库的一部分,位于Java.sql包 ...
- Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套 ...
- 【HBase】表模型和基本操作介绍
目录 HBase表模型 常用Shell操作 HBase表模型 创建一个hbase表,必须要有表名和列族名 列族 -- columnFamily,就是上图中的Column Family1 userInf ...
- redis基本操作介绍
一.字符串 单个设置:set key value,如果key不存在则设置键值对,如果存在则修改 批量设置:mset key1 value1 [key2 value2] 单个获取:get key,如果k ...
随机推荐
- python中的StringIO模块
python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...
- iOS中构造函数与析构函数
一.构造函数 在OC中凡是已init开头的函数我们都称之为构造函数,在声明构造函数的时候,不带参数的一般直接声明为“-(id)init”,带参数的一般声明为“-(id)initWith...”. 1 ...
- C语言编程时常犯十八个错误
C语言的最大特点是:功能强.使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经 ...
- hdu 1142 A Walk Through the Forest
http://acm.hdu.edu.cn/showproblem.php?pid=1142 这道题是spfa求最短路,然后dfs()求路径数. #include <cstdio> #in ...
- Auto Install Workflow Manager 1.0
Write-Host "- Begining Download Service Bus..." Start /W "c:\Program Files\Microsoft\ ...
- 转:PHP变量作用域(花括号、global、闭包)
花括号 很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域. 01 <?php 02 if (True) { 03 $a = 'var a'; 04 } 05 ...
- Android_Studio常用插件
Android studio常用插件,可极大简化开发,增强开发效率. 不懂安装studio插件,看参考博文:android stuido插件安装:http://blog.csdn.net/liang5 ...
- HDU 1251 字典树(前缀树)
题目大意 :Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).(单词互不相同) ...
- 2013成都网赛 G(x) (HDU 4733)
G(x) 思路: 首先搞清楚每个位置上的值有什么意义, 如果第i位的值为1则 第i位与第i+1位不同,反之相同. 然后考虑s1和s2为什么会不一样, 这是由于x+1后比特位进位导致的,于是得出一个性质 ...
- win10无法使用内置管理员账户打开
对于这种问题其实对于专业版用户倒不是难事,很容易解决,具体方法如下: 首先WIN+R输入:gpedit.msc,打开组策略,找到“计算机配置”里面的“Windows设置”,打开“安全设置” -> ...