Python 爬虫(五):PyQuery 框架

Python 爬虫(五):PyQuery 框架,第1张

概述  PyQuery是仿照jQuery实现的,语法与jQuery几乎完全相同,如果你熟悉jQuery,又不想再记一套BeautifulSoup(Python爬虫(三):BeautifulSoup库)的调用方法,那么PyQuery是一个很好的选择。1准备工作1.1安装使用如下终端命令安装pipinstallpyquery安装完成后导包from

 

 

@H_419_5@

Pyquery 是仿照 jquery 实现的,语法与 jquery 几乎完全相同,如果你熟悉 jquery,又不想再记一套 BeautifulSoup (Python 爬虫(三):BeautifulSoup 库) 的调用方法,那么 Pyquery 是一个很好的选择。

1 准备工作1.1 安装

使用如下终端命令安装

pip install pyquery

安装完成后导包

from pyquery import Pyquery as pq

1.2 初始化

传入字符串

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> </body></HTML>'''doc = pq(HTML)print(type(doc))print(doc)

传入文件

 
from pyquery import Pyquery as pq
doc= pq(filename='p.HTML')print(type(doc))print(doc)

传入 lxml.etree

 
from pyquery import Pyquery as pqfrom lxml import etree
doc = pq(etree.fromstring('<HTML><Title>Hello Pyquery</Title></HTML>'))print(type(doc))print(doc)

传入 URL

 
from pyquery import Pyquery as pqdoc = pq('http://www.baIDu.com')print(type(doc))print(doc)
2 快速上手2.1 基本使用

获取元素

首先,我们使用 Pyquery 的 CSS 选择器获取指定元素。示例如下:

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> </body></HTML>'''doc = pq(HTML)# 获取 ulul = doc('#container')# 获取 lili = doc('ul li')print(ul)print(li)

遍历元素

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> </body></HTML>'''doc = pq(HTML)# 遍历 lilis =doc('li').items()for li in lis: print(li)

存在多个相同元素时,获取指定元素

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> </body></HTML>'''doc = pq(HTML)lis =doc('li').items()# 获取第二个 lil2 = List(lis)[1]print(l2)

获取父、子、兄弟元素

Pyquery 可以通过方法直接获取指定元素的父、子、兄弟元素。示例如下:

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body>
<ul></ul> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> <ul></ul> </body></HTML>'''doc = pq(HTML)ul = doc('#container')l2 = doc('#container .l2')# 获取 ul 父元素ul_parent = ul.parent()# 获取 ul 子元素ul_child = ul.children()# 获取第二个 li 兄弟元素l2_sib = l2.siblings()print(ul_parent)print(ul_child)print(l2_sib)

获取属性、文本信息

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title name='Title'>Hello Pyquery</Title> </head></HTML>'''doc = pq(HTML)Title =doc('Title')# 获取 name 属性print(Title.attr('name'))# 获取 Title 标签文本信息print(Title.text())

获取 HTML

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3</li> </ul> </body></HTML>'''doc = pq(HTML)# 获取 ul 中 HTMLul =doc('ul')print(ul.HTML())
2.2 伪类选择器

伪类可以根据一个元素的特征进行分类,下面通过示例了解下伪类选择器的使用。

 
from pyquery import Pyquery as pq
HTML = '''<HTML> <head> <Title>Hello Pyquery</Title> </head> <body> <ul ID="container"> <li >l1</li> <li >l2</li> <li >l3last</li> </ul> </body></HTML>'''doc = pq(HTML)# 设置起始位置lis = doc('li:gt(-1)')# 获取第一个 lifli = doc('li:first-child')# 获取最后一个 lilli = doc('li:last-child')# 获取指定 lil2 = doc('li:nth-child(2)')# 获取包含 last 的 licli = doc('li:contains("last")')print(lis)print(fli)print(lli)print(l2)print(cli)

 

@H_419_5@

总结

以上是内存溢出为你收集整理的Python 爬虫(五):PyQuery 框架全部内容,希望文章能够帮你解决Python 爬虫(五):PyQuery 框架所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1183679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存