Python 为什么我的for循环只检查最后一项?
我已经构建了一个异步程序,它将检查一个元素是否存在于网站的多个路径上。 该程序有一个基本url,它将获得要检查的域的不同路径,这些路径位于json文件(name.json)中。 如果我要查找的元素存在,程序应该打印出“1”。但我很快意识到,它只选择检查json列表中的最后一项Python 为什么我的for循环只检查最后一项?,python,loops,for-loop,python-requests,grequests,Python,Loops,For Loop,Python Requests,Grequests,我已经构建了一个异步程序,它将检查一个元素是否存在于网站的多个路径上。 该程序有一个基本url,它将获得要检查的域的不同路径,这些路径位于json文件(name.json)中。 如果我要查找的元素存在,程序应该打印出“1”。但我很快意识到,它只选择检查json列表中的最后一项 import json import grequests from bs4 import BeautifulSoup idlist = json.loads(open('name.json').read()) base
import json
import grequests
from bs4 import BeautifulSoup
idlist = json.loads(open('name.json').read())
baseurl = 'https://steamcommunity.com/id/'
for uid in idlist:
fullurl = baseurl + uid
rs = (grequests.get(fullurl) for uid in idlist)
resp = grequests.map(rs)
for r in resp:
soup = BeautifulSoup(r.text, 'lxml')
if soup.find('span', class_='actual_persona_name'):
print('1')
else:
print('2')
json文件只是由一个随机数组组成,用于测试程序
["xyz",
"sdasda9229",
"sdasda923229",
"sda",
"sda",
"sda",
"sd2",
"aaaaaa",
"aaaaaaaaa",
"aa2092425",
"aaaa23917"]
在将id附加到基本url后,它不会被存储。在构造
get
请求时,必须存储它并传递完整的URL
complete_urls = []
for uid in idlist:
fullurl = baseurl + uid
complete_urls.append(fullurl)
rs = (grequests.get(fullurl) for fullurl in complete_urls)