您好,登錄后才能下訂單哦!
這篇文章給大家介紹pyquery 如何獲取你想要的元素或文本信息,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
hello,各位小伙伴,大家好,今天我們分享一下pyquery 如何獲取你想要的元素或者說想要的文本信息的。
我們主要是給出在工程開發中的比較常用的一些case出來,后續我呢會帶著大家一起用今天學到的東西去抓取天天基金網上有意思的基金數據。
1.可加載一段HTML字符串,或一個HTML文件,或是一個url地址,
d=pq("<html><title>hello</title></html>")
d=pq(filename=path_to_html_file)
d=pq(url='http://www.baidu.com')注意:此處url似乎必須寫全
2.html()和text() ——獲取相應的HTML塊或文本塊,
p=pq("<head><title>hello</title></head>")
p('head').html()#返回<title>hello</title>
p('head').text()#返回hello
3.根據HTML標簽來獲取元素,
d=pq('<div><p>test 1</p><p>test 2</p></div>')
d('p')#返回[<p>,<p>]
print d('p')#返回<p>test 1</p><p>test 2</p>
print d('p').html()#返回test 1
注意:當獲取到的元素不只一個時,html()、text()方法只返回首個元素的相應內容塊
4.eq(index) ——根據給定的索引號得到指定元素
接上例,若想得到第二個p標簽內的內容,則可以:
print d('p').eq(1).html() #返回test 2
5.filter() ——根據類名、id名得到指定元素,例:
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('p').filter('#1') #返回[<p#1>]
d('p').filter('.2') #返回[<p.2>]
6.find() ——查找嵌套元素
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('div').find('p')#返回[<p#1>, <p.2>]
d('div').find('p').eq(0)#返回[<p#1>]
7.直接根據類名、id名獲取元素
d=pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('#1').html()#返回test 1
d('.2').html()#返回test 2
8.獲取屬性值
d=pq("<p id='my_id'><a href='http://hello.com'>hello</a></p>")
d('a').attr('href')#返回http://hello.com
d('p').attr('id')#返回my_id
9.修改屬性值
d('a').attr('href', 'http://baidu.com')把href屬性修改為了baidu
10.addClass(value) ——為元素添加類
d=pq('<div></div>')
d.addClass('my_class')#返回[<div.my_class>]
11.hasClass(name) #返回判斷元素是否包含給定的類
d=pq("<div class='my_class'></div>")
d.hasClass('my_class')#返回True
12.children(selector=None) ——獲取子元素
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")
d.children()#返回[<p#1>, <p#2>]
d.children('#2')#返回[<p#2>]
13.parents(selector=None)——獲取父元素
d=pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")
d('p').parents()#返回[<span>]
d('#1').parents('span')#返回[<span>]
d('#1').parents('p')#返回[]
14.clone() ——返回一個節點的拷貝
15.empty() ——移除節點內容
16.nextAll(selector=None) ——返回后面全部的元素塊
d=pq("<p id='1'>hello</p><p id='2'>world</p><img scr='' />")
d('p:first').nextAll()#返回[<p#2>, <img>]
d('p:last').nextAll()#返回[<img>]
17.not_(selector) ——返回不匹配選擇器的元素
d=pq("<p id='1'>test 1</p><p id='2'>test 2</p>")
d('p').not_('#2')#返回[<p#1>]
18.遍歷:
遍歷用到items方法返回對象列表,或者用lambda
# !/usr/bin/python
"""
@File : pyquery_demo.py
@Time : 2019/8/31 16:46
@Author : haishiniu
@Software: PyCharm
"""
from pyquery import pyquery as pq
doc = pq('<div><ul><li>h2</li><li>h3</li></ul></div>')
list = doc('li')
for li in list.items():
print(li.html)
關于pyquery 如何獲取你想要的元素或文本信息就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。