簡體   English   中英

使用BeautifulSoup從HTML中提取外國字符(即中文)?

[英]foreign characters (i.e. Chinese) from HTML using BeautifulSoup?

我有一個包含1,000多個URL的文本文件,每個URL都鏈接到文本的日記條目。 其中一些條目包含中文或日語字符。

我想使用BeautifulSoup保存每個條目。 但是,我無法弄清楚這種情況下的編碼和解碼如何工作。 我瀏覽了Stack Overflow以尋求幫助,我只能找到其中字符串本身已知並將其設置為變量的實例。

但是,鑒於我是從URL列表中抓取的,因此我不知道在收集它們之前會找到什么字符串。

這是我到目前為止的內容:

with open(data_src) as f:
  resp = requests.get(f.readlines()[419])
  raw_text = resp.text
  soup = BeautifulSoup(raw_text, 'html.parser')
  for s in soup.findAll('script'):
      s.replaceWith('')
  entry = soup.select('div#body_show_ori')[0]
  print(entry.text.encode('utf-8'))

這是打印的字符串:

b'\\ n \\ xe6 \\ x88 \\ x91 \\ xe7 \\ xbb \\ x88 \\ xe4 \\ xba \\ x8e \\ xe5 \\ x88 \\ xb0 \\ xe4 \\ xba \\ x86 \\ xe4 \\ xb8 \\ xad \\ xe5 \\ x9b \\ xbd \\ xe5 \\ x8e \\ xa6 \\ xe9 \\ x97 \\ xa8 \\ xe3 \\ x80 \\ x82 \\ xe6 \\ x88 \\ x91 \\ xe8 \\ xa7 \\ x89 \\ xe5 \\ xbe \\ x97 \\ xe8 \\ xbf \\ x99 \\ xe9 \\ x87 \\ x87 \\ x8c \\ xe5 \\ xbe \\ x88 \\ xe7 \\ x83 \\ xad \\ xe5 \\ xbe \\ x88 \\ xe6 \\ xbd \\ xae \\ xe6 \\ xb9 \\ xbf \\ xe3 \\ x80 \\ x82 \\ xe7 \\ x8e \\ xb0 \\ xe5 \\ x9c \\ xa8 \\ xe6 \\ x88 \\ x91 \\ xe6 \\ xb2 \\ xa1 \\ xe6 \\ x9c \\ x89 \\ xe6 \\ x9c \\ x8b \\ xe5 \\ x8f \\ x8b \\ xe8 \\ x80 \\ x8c \\ xe4 \\ xb8 \\ x94 \\ xe8 \\ xbf \\ x99 \\ xe4 \\ xb8 \\ xaa \\ xe5 \\ x9c \\ xb0 \\ xe6 \\ x96 \\ xb9 \\ xe6 \\ x88 \\ x91 \\ xe4 \\ xb8 \\ x8d \\ xe7 \\ x86 \\ x9f \\ xe6 \\ x82 \\ x89 \\ xe3 \\ x80 \\ x82 \\ xe4 \\ xb8 \\ x8d \\ xe6 \\ x95 \\ xa2 \\ xe5 \\ x87 \\ xba \\ xe5 \\ x8e \\ xbb \\ xe5 \\ xa4 \\ x96 \\ xe9 \\ x9d \\ xa2 \\ xe3 \\ x80 \\ x82 \\ xe3 \\ x80 \\ x82 \\ xe3 \\ x80 \\ x82 \\ xe5 \\ xa5 \\ xbd \\ xe6 \\ x97 \\ xa0 \\ xe8 \\ x81 \\ x8a \\ xe3 \\ x80 \\ x82 \\ xe3 \\ x80 \\ x82 \\ xe3 \\ x80 \\ x82 \\ n'

這就是我被困住的地方; 我試圖弄清楚如何從這里解碼字符串。

將數據傳遞給beautifulsoup 之前 ,請嘗試解碼。

從本質上講,IIRC如果傳遞unicode對象,它將不會再次對其進行解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM