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