python程式(1)獲取一個網頁的所有中文字元
阿新 • • 發佈:2018-12-14
所有的中文字元都是在html的各種標籤之中,因此我們需要拿到html的整個檔案。為此我們匯入requests庫,再者,我們需要去除標籤將全部內容進行文字化,此處是中英文都有的文字,為此我們引入beautifulsoup,因為get_text方法使得我們可以獲取所有文字。然後我們在用正則表示式獲取其中的中文資訊再存入檔案中。
對於requests和beautifulsoup的包的引入,可以在網上尋找相關內容。
程式碼如下:
可以通過更改改變匹配資訊d
來達到濾出各種我們所需要的內容和資訊。
import re import os import io import sys import requests from bs4 import BeautifulSoup #匯入一些必要的庫 #兩個引數,第一個傳入網頁url,第二個傳入要儲存的檔名 #這是一個取出網站中所有中文字元的程式 def pureCNtext(url,txtname): sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')#改變預設編碼防止出現unicode error錯誤 r=requests.get(url,verify=False)#發出requests請求,拿入url,verify為false,這樣能保證不出現verification錯誤 r.encoding='utf-8'#改變編碼 soup=BeautifulSoup(r.text)#用bs取出所有tag標籤並有序排列 text=soup.get_text()#利用bs的get_text方法拿到網站中的所有文字,包括中英文 text_nospace=text.replace('\n','')#去除所有格式,僅剩下文字。 d="[\u4e00-\u9fa5]+"#中文的匹配資訊包含了所有的中文字元 L=[]#建立一個列表用來儲存中文字元 for i in text_nospace: #i=i.decode('utf-8') I=re.findall(d,i)#匹配字元格式與內容,英文,數字,標點符號都進行去除 L+=I#存入表中 for k in L: z=open(txtname+'.txt','a',encoding='utf-8')#以新增模式寫入文件,文件名字自定義 z.write(k)