Home Backend Development Python Tutorial python解析html开发库pyquery使用方法

python解析html开发库pyquery使用方法

Jun 06, 2016 am 11:29 AM

例如

代码如下:



导演: 汤姆·提克威 / 拉娜·沃卓斯基 / 安迪·沃卓斯基

编剧: 汤姆·提克威 / 安迪·沃卓斯基 / 拉娜·沃卓斯基

主演: 汤姆·汉克斯 / 哈莉·贝瑞 / 吉姆·布劳德本特 / 雨果·维文 / 吉姆·斯特吉斯 / 裴斗娜 / 本·卫肖 / 詹姆斯·达西 / 周迅 / 凯斯·大卫 / 大卫·吉雅西 / 苏珊·萨兰登 / 休·格兰特

类型: 剧情 / 科幻 / 悬疑

官方网站: cloudatlas.warnerbros.com

制片国家/地区: 德国 / 美国 / 香港 / 新加坡

语言: 英语

上映日期: 2013-01-31(中国大陆) / 2012-10-26(美国)

片长: 134分钟(中国大陆) / 172分钟(美国)

IMDb链接: tt1371111

官方小站:
电影《云图》

代码如下:


from pyquery import PyQuery as pq
doc=pq(url='http://movie.douban.com/subject/3530403/')
data=doc('.pl')
for i in data:
    print pq(i).text()

输出

代码如下:


导演
编剧
主演
类型:
官方网站:
制片国家/地区:
语言:
上映日期:
片长:
IMDb链接:
官方小站:

用法

用户可以使用PyQuery类从字符串、lxml对象、文件或者url来加载xml文档:

代码如下:


>>> from pyquery import PyQuery as pq
>>> from lxml import etree
>>> doc=pq("")
>>> doc=pq(etree.fromstring(""))
>>> doc=pq(filename=path_to_html_file)
>>> doc=pq(url='http://movie.douban.com/subject/3530403/')

可以像jQuery一样选择对象了

代码如下:


>>> doc('.pl')
[, , , , , , , , , , , , , , , , , , , ]

这样,class为'pl'的对象就全部选择出来了。

不过在使用迭代时需要对文本进行重新封装:

代码如下:


for para in doc('.pl'):
    para=pq(para)
    print para.text()  
导演
编剧
主演
类型:
官方网站:
制片国家/地区:
语言:
上映日期:
片长:
IMDb链接:
官方小站:

这里得到的text是unicode码,如果要写入文件需要编码为字符串。
用户可以使用jquery提供的一些伪类(但还不支持css)来进行操作,诸如:

代码如下:


>>> doc('.pl:first')
[]
>>> print  doc('.pl:first').text()
导演

Attributes
获取html元素的属性

代码如下:


>>> p=pq('

')('p')
>>> p.attr('id')
'hello'
>>> p.attr.id
'hello'
>>> p.attr['id']
'hello'

赋值

代码如下:


>>> p.attr.id='plop'
>>> p.attr.id
'plop'
>>> p.attr['id']='ola'
>>> p.attr.id
'ola'
>>> p.attr(id='hello',class_='hello2')
[

]

Traversing
过滤

代码如下:


>>> d=pq('

hello

world

')
>>> d('p').filter('.hello')
[

]
>>> d('p').filter('#test')
[

]
>>> d('p').filter(lambda i:i==1)
[

]
>>> d('p').filter(lambda i:i==0)
[

]
>>> d('p').filter(lambda i:pq(this).text()=='hello')
[

]

按照顺序选择

代码如下:


>>> d('p').eq(0)
[

]
>>> d('p').eq(1)
[

]

选择内嵌元素

代码如下:


>>> d('p').eq(1).find('a')
[]

选择父元素

代码如下:


>>> d=pq('

Whoah!

there

')
>>> d('p').eq(1).find('em')
[]
>>> d('p').eq(1).find('em').end()
[

]
>>> d('p').eq(1).find('em').end().text()
'there'
>>> d('p').eq(1).find('em').end().end()
[

,

]

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1248
24
Python vs. C  : Applications and Use Cases Compared Python vs. C : Applications and Use Cases Compared Apr 12, 2025 am 12:01 AM

Python is suitable for data science, web development and automation tasks, while C is suitable for system programming, game development and embedded systems. Python is known for its simplicity and powerful ecosystem, while C is known for its high performance and underlying control capabilities.

Python: Games, GUIs, and More Python: Games, GUIs, and More Apr 13, 2025 am 12:14 AM

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

Python vs. C  : Learning Curves and Ease of Use Python vs. C : Learning Curves and Ease of Use Apr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

The 2-Hour Python Plan: A Realistic Approach The 2-Hour Python Plan: A Realistic Approach Apr 11, 2025 am 12:04 AM

You can learn basic programming concepts and skills of Python within 2 hours. 1. Learn variables and data types, 2. Master control flow (conditional statements and loops), 3. Understand the definition and use of functions, 4. Quickly get started with Python programming through simple examples and code snippets.

Python and Time: Making the Most of Your Study Time Python and Time: Making the Most of Your Study Time Apr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python vs. C  : Exploring Performance and Efficiency Python vs. C : Exploring Performance and Efficiency Apr 18, 2025 am 12:20 AM

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

Python: Automation, Scripting, and Task Management Python: Automation, Scripting, and Task Management Apr 16, 2025 am 12:14 AM

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

Learning Python: Is 2 Hours of Daily Study Sufficient? Learning Python: Is 2 Hours of Daily Study Sufficient? Apr 18, 2025 am 12:22 AM

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

See all articles