紫旭
Learning and Developing
【Python】关于index()方法及切片功能的一些小细节

前言

由于我今天要练手做一个获取指定两文本之间的内容(取出中间文本),所以用到了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,完美达到预期。

结束

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

赞赏

本站全部博文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
本文永久地址:https://blog.zixutech.cn/archives/130
没有标签
首页      我爱学习      Python      【Python】关于index()方法及切片功能的一些小细节
https://secure.gravatar.com/avatar/141689cb377e5fa6af643cdb5b5841c2?s=256&d=identicon&r=g

紫旭

文章作者

发表评论

textsms
account_circle
email

紫旭Blog – 学无止境

【Python】关于index()方法及切片功能的一些小细节
前言 由于我今天要练手做一个获取指定两文本之间的内容(取出中间文本),所以用到了index()方法 在使用过程中,碰上几个有趣的问题,我决定记录一下保证以后不会再出现! 这里是事情…
扫描二维码继续阅读
2018-07-04
$(function(){ $('.EnlighterJSInfoButton').hide(); })