首页 文章

使用BeautifulSoup的HTML中的外来字符(即中文)?

提问于
浏览
0

我有一个包含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 \ 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 \ 86 \ 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”

这就是我被困的地方;我正在试图弄清楚如何从这里解码字符串 .

1 回答

  • 0

    在将数据传递给beautifulsoup之前尝试解码 .

    IIRC,如果你传递一个unicode对象,它将不会再次解码它 .

相关问题