目錄
pyquery的使用
使用pyquery需要在web和了解jquery的基礎上,使用該css選擇器。
使用pyquery初始化的方式有很多,傳入的引數可以是字串,也可以是url和檔名,下面將一一介紹初始化方法。
字串html = '''
charset="utf-8">
test02.html
'''from pyquery import pyquery as pq
doc = pq(html)
print(doc('title'))
【執行結果】
test02.html
urlurl以csdn首頁位址為例:
from pyquery import pyquery as pq
doc = pq(url = '')
print(doc('title'))
【執行結果】
csdn - 專業開發者社群
檔案初始化
我們將以下字串儲存為乙個html檔案,通過檔案的形式進行初始化。
【test02.html】
harry potter
29.99
learning xml
39.95
from pyquery import pyquery as pq
doc = pq(filename = 'www.cppcns.comtest02.html')
print(doc('title'))
【執行結果】
harry potter
learning xml
(1)查詢子節點
查詢子節點時需要用到find()方法,此時傳入的引數是css選擇器。
from pyquery import pyquery as pq
doc = pq(filename = 'test02.html')
item = doc('book')
print(item)
lis1 = item.find('title')
lis2 = item.find('price')
print(lis1)
print(lis2)
【執行結果】
harry potter
29.99
learning xml
39.95
harry potter
learning xml
29.99
39.95
可以看到,我們首先匹配的是book節點,然後匹配book節點下的子節點title和price。其實使用find方法匹配的是所有的子孫節點,如果只是單純匹配子節點可以使用children方法。
(2)匹配父節點
使用parent()方法,如果是要匹配祖先節點,則需要使用parents()方法。
(3)匹配兄弟節點
可以使用siblings()方法。
對於獲取到的內容如果是單個節點,則可以直接轉換為字串型別,而對於獲取到多個節點,因其型別為pyquery型別,需要對獲取到的資料進行遍歷,這是需要呼叫items()方法。
from pyquery import pyquery as pq
doc = pq(filename = 'test02.html')
items = doc('title').items()
print(items)
print(ty程式設計客棧pe(items))
for i in items:
print(type(i))
print(i)
【執行結果】
harry potter
learning xml
(1)獲取屬性
使用attr()方法
from pyquery import pyquery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in ite程式設計客棧ms.items():
print(i.attr('lang'))
【執行結果】
engeng遍歷獲取到的資料,就能獲得所有title節點的land屬性值。
(2)獲取文字
使用text()方法
from pyquery import pyquery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in items.items():
print(i.text())
【執行結果】
harry potter
learning xml
同樣是遍歷,獲取到每乙個title節點的文字值。
(1)為某個節點新增或刪除乙個class
呼叫的方法為addclass和removeclass
from pyquery import pyquery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in items.items():
print(i)
i.addclass('book01')
print(i)
i.removeclass('book01')
print(i)
【執行結果】
harry potter
harry potter
harry potter
learning xml
learning xml
learning xml可以看到,首先是列印最初始的title節點,加上class屬性後再次列印,去掉class屬性後再次列印。
(2)attr、text、html
attr:用來改變屬性值;
text:用來改變文字值;
html:用來改變節點值;
(3)remove
移除不需要的節點值,將整個節點移除。
支援多種偽類選擇器,例如選擇第乙個節點、最後乙個節點、奇數節點、偶數節點、以及包含指定文字的節點等。
Python 網路爬蟲之BeautifulSoup
在上一節記錄了如何使用urllib進行網路爬蟲,並將資料儲存。但是我當時是使用的正規表示式進行的資料過濾,有些不全面。接下來我將記錄一種更加方便的解析資料的操作 beautifulsoup 安裝beautifulsoup4 導包import urllib.request from bs4 impor...
Python之網路爬蟲(1)
將 中所有的出版社資訊都爬取出來。如下 可以看到,網頁中有許多的出版社。下面我們用 將所有出版社的名字爬取出來,並儲存在檔案中。import urllib.request import re url data urllib.request.urlopen url read data data.dec...
Python之網路爬蟲(4)
使用 伺服器進行資訊爬取,可以很好的解決ip限制的問題。import urllib.request def use proxy url,proxy addr proxy urllib.request.proxyhandler 由於urllib.request.urlopen不支援很多高階網頁,因此使...