爬蟲入門之pyQuery

2021-09-27 01:23:03 字數 2313 閱讀 9226

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...