Python3解析庫lxml


lxml是python的一個解析庫,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高

 from lxml import etree

有時候在使用的時候:from lxml import etree時報錯,沒有etree這個庫,這是因為有的lxml包中沒有集成etree 

解決方法:可以自己再選擇安裝帶etree的lxml,我的Python是3.6,下載的etree是4.2.1 

 

一個demo(先研究,在上代碼)

主頁大概這樣子

 

 

 發現文件內容都在  id  =contentText 的div 的p 標簽中 

 

我們寫代碼 寫個面試類

import requests
from  lxml import  etree



class  Pymianshi():
    def  __init__(self,url):
        self.url=url
        pass

 

獲取返回信息

    def  huoquurlnr(self):
        '''這個方法 是 請求,解析url,返回信息'''
        reqdata=requests.get(self.url)
        reqdata.encoding='gbk'
        return  reqdata.text

解析文本

    def jiexidata(self):
        '''這個方法是解析返回的信息,篩選需要的信息與文本'''
        listdata=[]
        data=self.huoquurlnr()
        xml=etree.HTML(data)

        xmldata=xml.xpath("//div[@id='contentText']/p/text()")
        xmldatalen=len(xmldata)
        #從 6 開始的原因是因為 前面都是無用的
        for  i  in  range(0,xmldatalen):
            xmldata[i]
            listdata.append(xmldata[i])
        return listdata

寫入txt (每次寫入完畢提醒)

    def  worktxt(self):
        '''這個方法表示寫入成txt文檔'''
        datas=self.jiexidata()
        for  i in  range(0,len(datas)):
            with open('python.txt','a',encoding='utf-8') as f:
                f.write(datas[i]+"\n\t")
        print("已經完成")

 

 調用

url='mianshiti/4064056.html' #python
pym=Pymianshi(url=url)
pym.worktxt()


存入txt 內容截圖:

 

 

網站呢,為了引起不必要的糾紛,我已經把url修改,怕引起不必要的麻煩,需要的話,留個Email,我會把完整代碼發給你(僅供學習交流)

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM