基础1·起点小说一页的爬取(文本的保存(字符串),re的简单使用,爬取文本中的\ufeff,\xa0,\u3000,\n的处理方法)

参考点:
文本的保存(字符串),re的简单使用,爬取文本中的\ufeff,\xa0,\u3000的处理方法


import requests,re

url='https://read.qidian.com/chapter/jd93MWexxQDH0qbqCO3QNg2/E4O992XbFv22uJcMpdsVgA2'
headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
        }
r=requests.get(url=url,headers=headers)
ret=r.text

temp=re.compile('.*?<div class="read-content j_readContent">(.*?)</div>',re.S)
text=re.findall(temp,ret)
for line in text:
    str_text=line

text1=str_text.replace("<p>","")
text2=text1.replace(" ","")
text3=text2.replace(u'\u3000',u'')   #爬取文本中的\ufeff,\xa0,\u3000的处理方法
text4=text3.replace(u'\n',u'')

with open ("C://Users/Administrator/Desktop/ammp.txt",'a') as f:
    f.write(text4)
    

结果展示:
在这里插入图片描述

爬取文本中的\ufeff,\xa0,\u3000的处理方法


1.\ufeff 字节顺序标记

去掉\ufeff,只需改一下编码就行,把UTF-8编码改成UTF-8-sig
with open(file_path, mode='r', encoding='UTF-8-sig') as f:
s = f.read()

2.\xa0 是不间断空白符

\xa0 是不间断空白符 &nbsp;
我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。
而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。

去除\xa0
str.replace(u'\xa0', u' ')

3.\u3000 是全角的空白符 
根据Unicode编码标准及其基本多语言面的定义, \u3000 属于CJK字符的CJK标点符号区块内,是空白字符之一。它的名字是 Ideographic Space ,有人译作表意字空格、象形字空格等。顾名思义,就是全角的 CJK 空格。它跟 nbsp 不一样,是可以被换行间断的。常用于制造缩进, wiki 还说用于抬头,但没见过。

去除\u3000
str.replace(u'\u3000',u' ')
去除空格和\xa0、\u3000
title.strip().replace(u'\u3000', u' ').replace(u'\xa0', u' ')

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值