本篇文章給大家分享的是有關(guān)Python中PyQuery如何使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供桐城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、H5頁面制作、小程序制作等業(yè)務。10年已為桐城眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
安裝
pip install pyquery
初始化
在這里介紹四種初始化方式。
(1)直接字符串
from pyquery import PyQuery as pq doc = pq("")
pq 參數(shù)可以直接傳入 HTML 代碼,doc 現(xiàn)在就相當于 jQuery 里面的 $ 符號了。
(2)lxml.etree
from lxml import etree doc = pq(etree.fromstring(""))
可以首先用 lxml 的 etree 處理一下代碼,這樣如果你的 HTML 代碼出現(xiàn)一些不完整或者疏漏,都會自動轉(zhuǎn)化為完整清晰結(jié)構(gòu)的 HTML代碼。
(3)直接傳URL
from pyquery import PyQuery as pq doc = pq('http://www.baidu.com')
這里就像直接請求了一個網(wǎng)頁一樣,類似用 urllib2 來直接請求這個鏈接,得到 HTML 代碼。
(4)傳文件
from pyquery import PyQuery as pq doc = pq(filename='hello.html')
可以直接傳某個路徑的文件名。
快速體驗
現(xiàn)在我們以本地文件為例,傳入一個名字為 hello.html 的文件,文件內(nèi)容為
- first item
- second item
- third item
- fourth item
- fifth item
編寫如下程序
from pyquery import PyQuery as pq doc = pq(filename='hello.html') print doc.html() print type(doc) li = doc('li') print type(li) print li.text()
運行結(jié)果
看,回憶一下 jQuery 的語法,是不是運行結(jié)果都是一樣的呢?
在這里我們注意到了一點,PyQuery 初始化之后,返回類型是 PyQuery,利用了選擇器篩選一次之后,返回結(jié)果的類型依然還是 PyQuery,這簡直和 jQuery 如出一轍,不能更贊!然而想一下 BeautifulSoup 和 XPath 返回的是什么?列表!一種不能再進行二次篩選(在這里指依然利用 BeautifulSoup 或者 XPath 語法)的對象!
然而比比 PyQuery,哦我簡直太愛它了!
屬性操作
你可以完全按照 jQuery 的語法來進行 PyQuery 的操作。
from pyquery import PyQuery as pq p = pq('')('p') print p.attr("id") print p.attr("id", "plop") print p.attr("id", "hello")
運行結(jié)果
hello
再來一發(fā)
from pyquery import PyQuery as pq p = pq('')('p') print p.addClass('beauty') print p.removeClass('hello') print p.css('font-size', '16px') print p.css({'background-color': 'yellow'})
運行結(jié)果
依舊是那么優(yōu)雅與自信!
在這里我們發(fā)現(xiàn)了,這是一連串的操作,而 p 是一直在原來的結(jié)果上變化的。
因此執(zhí)行上述操作之后,p 本身也發(fā)生了變化。
DOM操作
同樣的原汁原味的 jQuery 語法
from pyquery import PyQuery as pq p = pq('')('p') print p.append(' check out
這不需要多解釋了吧。
DOM 操作也是與 jQuery 如出一轍。
遍歷
遍歷用到 items 方法返回對象列表,或者用 lambda
from pyquery import PyQuery as pq doc = pq(filename='hello.html') lis = doc('li') for li in lis.items(): print li.html() print lis.each(lambda e: e)
運行結(jié)果
first item second item third item fourth item fifth item
不過最常用的還是 items 方法
網(wǎng)頁請求
PyQuery 本身還有網(wǎng)頁請求功能,而且會把請求下來的網(wǎng)頁代碼轉(zhuǎn)為 PyQuery 對象。
from pyquery import PyQuery as pq print pq('http://cuiqingcai.com/', headers={'user-agent': 'pyquery'}) print pq('http://httpbin.org/post', {'foo': 'bar'}, method='post', verify=True)
以上就是Python中PyQuery如何使用,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。