Python3.7如何从列表中提取数值

时间:2018-11-18 20:29:25

标签: python python-3.x

我正在做一些CTF,并编写了以下脚本:

import requests

page = requests.get("http://ctf.slothparadise.com/about.php").text
p_split = page.split("<p>")
p2_split = p_split[3].split("</p>")

print(p2_split)

我的输出是:

['You are the 135181th visitor to this page.\n      Every thousandth visitor gets a prize.', '\n    </div> <!-- /container -->\n  </body>\n</html>\n']

如何从列表中提取值135181

2 个答案:

答案 0 :(得分:3)

您可以尝试使用regex,这特别容易,因为尽管数字以1或2结尾,但似乎它们并没有改变'th'。

import re
import requests

page = requests.get("http://ctf.slothparadise.com/about.php").text
re.findall("\d+(?=th)", page)

输出:

['135335']

答案 1 :(得分:0)

要使其适用于任何值,请修改以下内容:

my_split = ['You are the 135181th visitor to this page.\n      Every thousandth visitor 
gets a prize.', '\n    </div> <!-- /container -->\n  </body>\n</html>\n']

visitor_num = my_split[0].split('You are the ', 1)[1].split('th')[0]
print(visitor_num)

实际上,我也可以在评论中看到类似的解决方案……希望这对您有用! 为了将来参考,请使用split函数和索引进行查找-您一定会再次使用它。