博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQuery基本操作介绍
阅读量:5161 次
发布时间:2019-06-13

本文共 1634 字,大约阅读时间需要 5 分钟。

PyQuery基本操作介绍

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

272663-20160131202000974-1981791386.png

初始化pyquery

from pyquery import PyQuery as pqdoc = 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("")d = pq(etree.fromstring(""))
  • 读取文件
d = pq(filename=path_to_html_file)

另外,在处理需要编码的文件时可以使用如下的方法:

from lxml.html import HTMLParser, fromstringUTF8_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))

转载于:https://www.cnblogs.com/silverbullet11/p/PyQuery.html

你可能感兴趣的文章
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>