jquery查找ul属性不是hide_测开系列Selenium Webdriver Python(17)--Python与JQuery

675964ad1dd1fee9ea4adb856ffd781a.png

Python与JQuery 转帖请注明出处!谢谢

  1. PyQuery介绍

pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,

实例:

from pyquery import PyQuery as pyq
html = '''
<html>
    <title>selenium</title>
<body>
    <p id="hi">Hello</p>
    <ul>
        <li>列表1</li>
        <li>列表2</li>
    </ul>
</body>
</html>
'''
jq = pyq(html)
print(jq('title'))  # 获取 title 标签的源码
print(jq('title').text())  # 获取 title 标签的内容
print(jq('#hi').text()) # 获取 id 为 hi 的标签的内容
li = jq('li')  # 处理多个元素
  1. Pyquer常用方法
  2. PyQuery(*args, **kwargs) :返回值相当于 jQuery 里面的 $ 符号了:
  3. html()和text():获取相应HTML块或文本

实例:

from pyquery import PyQuery as pq
p=pq("<head><title>selenium</title></head>")
p('head').html()#返回<title>selenium</title>
p('head').text()#返回selenium
  1. “html标签名”根据HTML标签来获取元素

实例:

from pyquery import PyQuery as pq
d=pq('<div><p>autonmation1</p><p> autonmation2</p></div>')
d('p')#返回[<p>,<p>]
print(d('p'))#返回<p>autonmation1</p><p> autonmation2</p>
print (d('p').html()) #返回autonmation1

注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容

  1. eq(index) :根据给定的索引号得到指定元素

实例:

from pyquery import PyQuery as pq
d=pq('<div><p>autonmation1</p><p> autonmation2</p></div>')
print(d('p').eq(1).html()) #得到第二个p标签内的内容
filter():根据类名、id名得到指定元素,

实例:

from pyquery import PyQuery as pq
d=pq("<div><p class='test1' >autonmation1</p><p id=”2”> autonmation2</p></div>")
d('p').filter('#2') #返回[<p#1>]
d('p').filter('.test1') #返回[<p.2>]
  1. find():查找嵌套元素

实例:

from pyquery import PyQuery as pq
d=pq("<div><p class='test1' >autonmation1</p><p id=”2”> autonmation2</p></div>")
d('div').find('p')#返回[<p class="test1">autonmation1</p><p id="&#x201D;2&#x201D;"> autonmation2</p>
d('div').find('p').eq(0)#返回[<p class="test1">autonmation1</p>]
  1. 直接根据类名、id名获取元素

实例:

from pyquery import PyQuery as pq
d=pq("<div><p class='test1' >autonmation1</p><p id='2'> autonmation2</p></div>")
d('#2').html()#返回autonmation2
d('.test1').html()#返autonmation1
  1. 获取属性值

实例:

from pyquery import PyQuery as pq
d=pq("<p id='testid'><a href='http://www.weilian.com'>selenium</a></p>")
d('a').attr('href')#返回http://hello.com
d('p').attr('id')#返回testid
  1. 修改属性值

实例:

from pyquery import PyQuery as pq
d=pq("<p id='testid'><a href='http://www.weilian.com'>selenium</a></p>")
d('a').attr('href', 'http://test.com')
print(d('a').attr('href')) #返回http://test.com
  1. addClass(value):为元素添加类

实例:

from pyquery import PyQuery as pq
d=pq("<p id='testid' ><a href='http://www.weilian.com'>selenium</a></p>")('p')
d.addClass('my_class')#<p id="testid" class="my_class"><a href="http://www.weilian.com">selenium</a></p>
  1. removeClass:为元素去掉class

实例:

from pyquery import PyQuery as pq
d=pq("<p id='testid' class='selenium' ><a href='http://www.weilian.com'>selenium</a></p>")('p')
d.remove_class('selenium')#<<p id="testid" class=""><a href="http://www.weilian.com">selenium</a></p>
  1. has_class(name): #返回判断元素是否包含给定的类

实例:

from pyquery import PyQuery as pq
d=pq("<p id='testid' class='selenium' ><a href='http://www.weilian.com'>selenium</a></p>")('p')
d.has_class('selenium')#True
  1. children(selector=None):获取子元素

实例:

from pyquery import PyQuery as pq
d=pq("<span><p class='test1' >autonmation1</p><p id='2'> autonmation2</p></span>")
d.children()#返回[<p class="test1">autonmation1</p><p id="2"> autonmation2</p>]
d.children('#2')#<p id="2"> autonmation2</p>
  1. parents(selector=None):获取父元素

实例:

from pyquery import PyQuery as pq
d=pq("<span><p class='test1' >autonmation1</p><p id='2'> autonmation2</p></span>")
d('p').parents()#返回[<span>]
d('.test1').parents('span')#返回[<span>]
(d('#2').parents('p')
  1. nextAll(selector=None) :返回后面全部的元素块

实例:

from pyquery import PyQuery as pq
d=pq("<p class='test1' >autonmation1</p><p id='2'> autonmation2</p><a href='http://weilian.com'>")
d('p:first').nextAll()#返回<p id="2"> autonmation2</p><a href="http://weilian.com"/>
d('p:last').nextAll()#返回<a href="http://weilian.com"/>
  1. not_(selector) :返回不匹配选择器的元素

实例:

from pyquery import PyQuery as pq
d=pq("<p class='test1' >autonmation1</p><p id='2'> autonmation2</p><a href='http://weilian.com'>")
d('p').not_('#2')#返回[<p class="test1">autonmation1</p>]
  1. 遍历用到 items 方法返回对象列表

实例:

from pyquery import PyQuery as pq
d=pq(""" <ul>
   <li class="item-0">first item</li>
         <li class="item-1"><a href="link2.html">second item</a></li>
         <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
         <li class="item-1 active"><a href="link4.html">fourth item</a></li>
         <li class="item-0"><a href="link5.html">fifth item</a></li>
     </ul>'>""")
lis = d('li')
for li in lis.items():
    print(li.html())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值