如何清除python3中字符串的多余数据

      最近正学习python+爬虫的知识。从网站上爬取一些信息然后保存。但是现在的好多网站都采取了反爬取的措施。我做的内容是爬取一些网页中的图片信息。但是这个网站上把网页中图片信息后面又加了一些无效多余的信息。来防止爬虫爬取。

 代码如下所示:

<img alt="SONY HT-NT5" src="https://making-photos.b0.upaiyun.com/photos/1431d4beeb5f28095b938b374e7a8168.jpg!thing.fixed.big">

       这个网站在.jpg的后面又添加了“!thing.fixed.big”这个字符串了进行干扰。如果按照原来的爬取方法,肯定会爬取到多余的信息。所以需要在获取图片地址之后,对表示地址的字符串进行处理来消除多余信息。
python3中有这样一个字符串处理函数:strip()。此函数可以消除字符串中多余的空格字符。但是配置好参数之后,也是可以进行处理多余的字符的。
举例如下:

spam='dirdirdirdireggdir'
spam2=spam.strip('dir')
print(spam2)
运行结果:
egg

很明显,这个函数剔除了‘dir’,这个无用的字符串。
    下面我们可以使用这个函数来对图片地址中的无效信息进行处理.看一下效果如何:

代码如下所示:

spam="https://making-photos.b0.upaiyun.com/photos/1431d4beeb5f28095b938b374e7a8168.jpg!thing.fixed.big"
spam2=spam.strip("!thing.fixed.big")
print(spam2)

运行结果:
ps://making-photos.b0.upaiyun.com/photos/1431d4beeb5f28095b938b374e7a8168.jp

很明显,运行的结果并没有达到理想中的效果。开头的https和结尾的jpg都有缺失。
看来只能另觅它途.思路是查找字符串,查找出!thing.fixed.big”这个字符串的确切位置,然后对字符串进行切片处理,以剔除无效字符.
代码如下:
spam="https://making-photos.b0.upaiyun.com/photos/1e890a9184d31fa11224dcf5198fda6d.jpg!thing.fixed.big"

if '!thing.fixed.big' in spam:  #判断一下要清除的字符串是否在较大的字符串中。
    pos=spam.index('!thing.fixed.big')    #确定字符串出现的位置。

    spam2=spam[:pos]           #对字符串进行切片处理。
    print(spam)                #打印原字符串
    print(spam2)             #打印输出处理后的效果
运行结果:
https://making-photos.b0.upaiyun.com/photos/1e890a9184d31fa11224dcf5198fda6d.jpg!thing.fixed.big
https://making-photos.b0.upaiyun.com/photos/1e890a9184d31fa11224dcf5198fda6d.jpg

基本达到了预期的效果!

ps:处理字符串是可以使用列表的方法,例如:切片。再见







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值