# lxml是一個(gè)高性能的python庫(kù),用于解析(處理)HTML和XML文檔,
# 它提供了簡(jiǎn)單而靈活的API,幫助開(kāi)發(fā)者輕松讀取、解析、創(chuàng)建和修改XML和HTML文檔。
import requests # 導(dǎo)入requests庫(kù),用于發(fā)送HTTP請(qǐng)求
from lxml import etree # 導(dǎo)入Lxml的etree模塊(庫(kù))使用etree獲取網(wǎng)頁(yè)element對(duì)象
# 爬蟲(chóng)對(duì)HTML提取的內(nèi)容,提取標(biāo)簽中的文本內(nèi)容及屬性的值 比如提取a標(biāo)簽中href屬性的值,獲取URL,進(jìn)而繼續(xù)發(fā)起請(qǐng)求
from openpyxl import Workbook # 導(dǎo)入openpyxl庫(kù),用于創(chuàng)建和操作Excel文件
# 定義GiteeCusts類(lèi),用于獲取Gitee平臺(tái)上的客戶信息
class GiteeCusts:
# 定義類(lèi)的初始化方法,用于初始化類(lèi)的屬性 self.url self.headers
def __init__(self,url):
self.url = url
self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36'}
# 定義類(lèi)的方法,用于獲取客戶信息
def get_custInfo(self):
# 發(fā)送GET請(qǐng)求,獲取網(wǎng)頁(yè)內(nèi)容 url headers
response = requests.get(self.url, headers=self.headers)
# 將 html 內(nèi)容解析為 Element 對(duì)象, html = etree.HTML(text)
htmlElement = etree.HTML(response.content)
#xpath方法返回列表的三種情況
# 1.返回空列表 []:根據(jù)xpath規(guī)則,表示沒(méi)有定位到任何元素
# 2.返回字符串 :根據(jù)xpath規(guī)則,匹配的一定是文本內(nèi)容或者某屬性的值
# 3.返回element對(duì)象列表:根據(jù)xpath規(guī)則,匹配的是標(biāo)簽,可以對(duì)返回的element對(duì)象列表進(jìn)行進(jìn)一步的xpath篩選
# 定位到需要爬取的頁(yè)面元素列表, html.xpath("xpath語(yǔ)法規(guī)則字符串")
# xpath語(yǔ)法規(guī)則字符串,用于定位需要爬取的頁(yè)面元素
giteelist = htmlElement.xpath('//section[@id="caseList"]/div/div[2]/div[1]/div')
# 定義客戶信息二維列表,并添加表頭
custInfo =[['url', 'tag', 'title', 'info']]
# 遍歷頁(yè)面元素列表,獲取每一個(gè)客戶信息
for el in giteelist:
#選擇擁有href屬性的所有<a>標(biāo)簽,使用的Xpath表達(dá)式://a[@href]
url = 'https://gitee.com/'+ el.xpath('./a/@href')[0]
# 選擇span標(biāo)簽的文本內(nèi)容,使用的Xpath表達(dá)式:./a/div[2]/div[2]/span/text()
tag = el.xpath('./a/div[2]/div[2]/span/text()')[0]
title = el.xpath("./a/div[2]/div[3]/h3/text()")[0]
info = el.xpath('./a/div[2]/div[3]/p/text()')[0]
custInfo.append([url,tag,title,info])
return custInfo
#創(chuàng)建類(lèi)的實(shí)例,用于獲取客戶信息
# 調(diào)用類(lèi)的方法,獲取客戶信息
# 打印客戶信息
if __name__ == '__main__':
custs = GiteeCusts('https://gitee.com/customers')
custInfo = custs.get_custInfo()
print(custInfo)
#創(chuàng)建Excel對(duì)象
wb = Workbook()
sheet = wb.active
for row in custInfo:
sheet.append(row)
# 保存Excel文件
wb.save('gitee_custs.xlsx')
python Lxml模塊 解析爬取的標(biāo)簽
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 總的: 1.from lxml import etree 2.對(duì)html文本使用 etree.HTML(html)...
- python爬蟲(chóng)網(wǎng)頁(yè)解析之lxml模塊 一.模塊的安裝 windows系統(tǒng)下的安裝: 方法一:pip3 insta...
- 使用requests庫(kù)獲取電影天堂電影信息,將所有鏈接保存下來(lái)后可以使用迅雷批量下載。快速獲得最新最全電影資源! ...