python切片的作用_【Python】关于index()方法及切片功能的一些小细节

本文最后更新于 858 天前,其中的信息可能已经有所发展或是发生改变。

前言

由于我今天要练手做一个获取指定两文本之间的内容(取出中间文本),所以用到了index()方法

在使用过程中,碰上几个有趣的问题,我决定记录一下保证以后不会再出现!

这里是事情经过

我要获取的是全民K歌分享歌曲的真实下载链接,在经过各种网页分析之后(此处忽略一万字网页分析过程,如果你有需要我可以在另开文章写,很简单),我需要取出 “playurl”:”  至 “, 之间的内容,也就是歌曲链接啦。先贴上我刚开始写的代码(其实是网上copy过来再改改的

begin = data.index('"playurl":"') + 1

end = data.index('",', begin)

play_url = data[begin:end]

执行后得到如下结果

playurl”:”http://dl.stream.kg.qq.com/szkge/5f1df0f6432bd9287e866f1142a6f99780d859e0?ftnrkey=7a039fed55b00c20be61cf2da649f4f57a9f9d55129571b7959260f624d28ea217e4370a39ba0e79415a1d832047ed1a3468428a3711c3e321cd2e008d9d3ffc&vkey=87B8FA7323B449912EA32D8D9C5105A32BFBD78D0C5D75F94F41ECC603FE43FB750FD87037555B2E2ED2F07263FF7B41AD1359DC5EF4B74B9A70BEBF5A55490411EAAACD5C675A4C8FF4A0764E2B79D1A14C4EDE61D5B35D&fname=1021_e9638deee080f1bb547e47ef80f987fc618188ad.0.m4a&fromtag=1506&sdtfrom=v1506

而我想要的是从http开始的内容,所以我测试了半天,发现是那个 +1 的问题。

原来,index()获取到索引后,默认是最左边一个字符的索引,也就是上文代码中的 ” 所在的索引,我们+1后,就变成了p所在索引,因此执行后出现第一个引号消失了而从p开始算

明白了原因,就可以解决了。很简单,直接获取+自身长度即可。修改后代码如下

begin = data.index('"playurl":"') + len('"playurl":"')

end = data.index('",', begin)

play_url = data[begin:end]

也就是把+1 改成了 +len(‘”playurl”:”‘) ,这样在执行结果如下

http://dl.stream.kg.qq.com/szkge/5f1df0f6432bd9287e866f1142a6f99780d859e0?ftnrkey=ffa2360d2a287aad928b4cdb7bfd8132b814c4f2d8e919b74f26bd37b0e4470d80469ae091b6fe35ce30d45fffb9a782e777045217f9011dda9b2a2bd42f7a1a&vkey=E698512E5CB7A541942685C77FBF1068235409934EF5E3F13B498DDFCD2965C24E2ACB8C7B2126700222961FB84FD640356A0A2DB38B82D6111AEBDDD7797F9DE1A6B2C69311E2D9A202C1A06DCE2BC821385A70DBF73824&fname=1021_e9638deee080f1bb547e47ef80f987fc618188ad.0.m4a&fromtag=1506&sdtfrom=v1506

Perfect,完美达到预期。

结束

今天就到这吧,明天继续把这个小爬虫写完,不过怎么还是觉得易语言方便些呢。可能习惯了吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值