python pyQuery用法

前言:pyQuery强大又灵活的网页解析库。如果你觉得正则写起来太麻烦,如果你觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法,那么pyQuery就是你的绝佳选择。

 

·导入方法from pyquery import PyQuery as pq(这里由于PyQuery书写繁琐,就用pq代替)

doc = pq(‘url’)

print(doc('li'))这里跟css选择器的用法相同,但是不需要加select,根据标签查找就是直接输入标签名,根据class查找就是在class属性名前加一个·,如doc(.class名),如果class名是由几个单词加空格组成,则用点(.)代替空格(切记不可另加空格class="ab cc",用的时候就是(.ab.cc));根据id查找就是在id的id名前加一个#,如doc(#id名),几种方法可以同时使用,在后面用空格隔开即可。

 

·url初始化

doc=pq(url='url名')

doc('head')请求url链接的头信息

·文件初始化

doc=pq(filename='文件名.html')(首先你在python文件的同目录下要有一个对应的html文 件,或者指定html文件的路径)

doc('li')

查找元素(例子中的lis等都是我自己定义的变量)

子元素:例:item('.class名') lis=iten.children()查找子元素

父元素:例:item('.class名') lis=iten.parent()查找父元素。注parents()返回所有的祖先节点,包括父节点,从大到小依次输出。parents()还可以加入参数,css选择器。

兄弟元素:item.siblings()输出所有的兄弟元素,siblings()也可加参数。同父元素查找类似。

遍历:如果查找的元素只有一个,直接输出即可,如果有多个,就要用到items()方法了,然后再通过for循环输出即可。例如:lis=doc('li').items()。

获取信息

·获取属性:两种方法,但是都要用到sttr,分别举例为:lis.attr('href(name,class,id等都可以)')和lis.attr.href(name,class,id等都可以)

·获取文本:要用到text()方法,不管标签中有多少属性,只要能匹配到该标签,然后输出,返回的就只有文本内容。例:我们匹配到的是a标签<a id='aid' class='text' name='iphone' >mypython</a>,其中输出的就是mypython。

获取html

·就是使用html()方法,它包括了该标签的子标签从开始到结束的所有html代码

DOM操作(节点操作)

·删除添加class,用到removeClass()和addClass(),(注:精准匹配),用法:假设lis匹配到的class为<....class='item-0 active'...></...>,lis.removeClass('active'),输出lis后就成了<....class='item-0'...></...>,addClass()方法与之相同,是在class后面加上你所给的参数,如果lis中没有class这个属性,那么他就会自动生成一个class,并把你的参数放进去。

css和attr

attr用法:attr('属性','属性名'),有该属性的话就把该属性的属性名替换掉,没有的话就会生成该属性和属性名。

css('类型','尺寸'),如果标签中的style中有该类型,则该类型的类型尺寸会被替换,如果没有将会生成改类型和尺寸,如果连style都没有,将会生成style,类型,尺寸。

remove

用法和find()一起使用,例:lis.find('p').remove()移除lis中html代码的p标签。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQuery是一个类似于jQuery的Python库,它允许我们使用类似于jQuery的语法来操作HTML和XML文档。PyQuery基于lxml库构建,并提供了一种更为Pythonic的方式来进行文档解析和操作。 下面是一些PyQuery的基本用法: 1. 安装PyQuery库 使用pip命令来安装PyQuery库: ``` pip install pyquery ``` 2. 创建PyQuery对象 可以通过传入HTML或XML字符串来创建PyQuery对象,也可以从本地文件或URL获取文档并创建对象。 ``` from pyquery import PyQuery as pq # 从HTML字符串创建PyQuery对象 html = ''' <div class="wrap"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> ''' doc = pq(html) # 从本地文件创建PyQuery对象 doc = pq(filename='example.html') # 从URL创建PyQuery对象 doc = pq(url='http://www.example.com') ``` 3. 查找元素 可以使用类似于CSS选择器的语法来查找元素。 ``` from pyquery import PyQuery as pq html = ''' <div class="wrap"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> ''' doc = pq(html) # 查找class为box的元素 items = doc('.box') print(items) ``` 4. 获取属性和文本 可以使用attr()方法来获取元素的属性,text()方法来获取元素的文本。 ``` from pyquery import PyQuery as pq html = ''' <div class="wrap"> <a href="http://www.example.com">example</a> </div> ''' doc = pq(html) # 获取a标签的href属性 link = doc('a') print(link.attr('href')) # 获取a标签的文本 text = link.text() print(text) ``` 5. 修改属性和文本 可以使用attr()方法来修改元素的属性,text()方法来修改元素的文本。 ``` from pyquery import PyQuery as pq html = ''' <div class="wrap"> <a href="http://www.example.com">example</a> </div> ''' doc = pq(html) # 修改a标签的href属性 link = doc('a') link.attr('href', 'http://www.newexample.com') print(link) # 修改a标签的文本 link.text('new example') print(link) ``` 6. 遍历元素 可以使用for循环遍历元素。 ``` from pyquery import PyQuery as pq html = ''' <div class="wrap"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> ''' doc = pq(html) # 遍历class为box的元素 items = doc('.box') for item in items: print(item) ``` 以上就是PyQuery的一些基本用法,可以帮助我们更方便地解析和操作HTML和XML文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值