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,我會把完整代碼發給你(僅供學習交流)
