pyquery庫是 jquery 的 python 實現,能夠以jquery的語法來操作解析 html 文件,易用性和解析速度都很好
安裝
pip3 install pyquery
注意:由於 pyquery 依賴於 lxml ,要先安裝 lxml ,否則會提示失敗。
pip3 install lxml
pyquery方法
方法名方法實現的結果
.html()和.text()
獲取相應的 html 塊或者文字內容
selector
通過選擇器來獲取目標內容
.eq(index)
根據索引號獲取指定元素(index 從 0 開始)
.find()
查詢巢狀元素,
.filter()
根據 class、id 篩選指定元素
.attr()
獲取、修改屬性值
item()
遍歷標籤
from pyquery import pyquery
import requests
#pip install lxml
class collegaterank(object):
def get_page_data(self,url):
response = self.send_request(url=url)
if response:
# print(response)
with open('page.html','w',encoding='gbk') as file:
file.write(response)
self.parse_page_data(response)
def parse_page_data(self,response):
# 使用pyquery解析資料
pq = pyquery(response)
# find():根據css語法獲取標籤
# filter():根據id或者class過濾標籤
ranks = pq.find('div.scores_list dl')
ranks = pq.find('div').filter('.scores_list').find('dl')
# print(type(ranks.items()))
for dl in ranks.items():
# print(dl)
school_info = {}
school_info['url'] = dl('dt a').eq(0).attr('href')
school_info['icon'] = dl('dt a img').attr('src')
school_info['name'] =dl('dt strong a').text()
school_info['adress'] = dl('dd ul li').eq(0).text()
school_info['tese'] = dl('dd ul li').eq(1).find('span').text()
school_info['type'] = dl('dd ul li').eq(2).text()
school_info['belong'] = dl('dd ul li').eq(3).text()
school_info['level'] = dl('dd ul li').eq(4).text()
school_info['weburl'] = dl('dd ul li').eq(5).text()
print(school_info)
def extract_first(self,data=none,de****t=none):
if len(data) > 0:
return data[0]
return de****t
def send_request(self, url, headers=none):
headers = headers if headers else {
response = requests.get(url=url,headers=headers)
if response.status_code == 200:
return response.text
if __name__ == '__main__':
url = ''
obj = collegaterank()
obj.get_page_data(url)
爬蟲入門 5 PyQuery簡介
目前最新的版本是1.3,基於最新版本進行介紹。主要根據pyquery的官方文件進行了更新。from pyquery import pyquery as pq from lxml import etree import urllibdoc pq 解析文件的基本方法 p doc p 獲取p標籤print...
Python爬蟲之pyquery獲取不到元素
今天在做爬蟲專案的時候出現了乙個錯誤,通過pyquery獲取不到元素。from pyquery import pyquery as pq html doc pq html element doc warp ul li first child print element 執行結果 none但是pyqu...
Python爬蟲之PyQuery的用法
python教程全解 1 安裝 pip install pyquery 2 官方文件 3 初始化 1 直接字串 pq 引數可以直接傳入 html doc 現在就相當於 jquery 裡面的 符號了 from pyquery import pyquery as pq doc pq 2 lxml.etr...