我正在使用列表“名称”中的变量从网站请求价值点:
names = ['A', 'B', 'C', 'D', 'E']
实际上,我在名称中的值比这多得多。
计划是遍历以下地址并像这样填写我的变量:
def get_values(name):
res = requests.get('www.example.com/tb/' + name)
for name in names:
get_values(name)
问题是,不同值的一部分地址更改为三个不同的值(tb、az 和 dm)(对于不同的名称,它们始终相同):
- www.example.com/tb/A
- www.example.com/tb/B
- www.example.com/az/C
- www.example.com/dm/D
- www.example.com/dm/E
出于这个原因,在我上面的代码中,只下载了 A 和 B 的值。(并且将变量分配给名称是不切实际的,反之亦然。)
所以我获得正确 URL 的计划是用 if/else 来解决这个问题:
try:
r = requests.get('www.example.com/tb/' + stock)
if r.status_code == 200:
url = 'www.example.com/tb/' + stock
else:
r = requests.get('www.example.com/az/' + stock)
if r.status_code == 200:
url = 'www.example.com/az/' + stock
else:
url = 'www.example.com/dm/' + stock
except:
pass
correctUrl = requests.get(url)
这只会给我一个变量的值(例如 tz)。我还尝试使用 try 和 except 以及 try/except 和 if/else 的一些变体找到解决方案,但它不起作用。
如果有人能给我建议如何验证列表中每个名字的正确地址,那就太好了。或者什么是最pythonic的方式来做到这一点。不幸的是,我无法在 stackoverflow 或 google 上找到方法。