1. 程式人生 > >python程式(1)獲取一個網頁的所有中文字元

python程式(1)獲取一個網頁的所有中文字元

所有的中文字元都是在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)