Python for循环始终使用else语句

时间:2019-05-25 11:27:23

标签: python loops beautifulsoup

我正在制作一个程序,该程序将使用打印来检测404页。要使用数组列表中的名称填充网址来检测这些网页,例如-> steamcommunity.com/groups/(ARRAY FILLED)。

from bs4 import BeautifulSoup
import requests
import json

names = json.loads(open('names.json').read())

def groupfinder():
    for name in names:
        url = requests.get('https://steamcommunity.com/groups/').text + name
        soup = BeautifulSoup(url, 'lxml')
        clan = soup.find('span', class_='grouppage_header_abbrev')
        clantag = clan
        if clan != None:
            print(clantag.text,"is already taken")
        else:
            print('GROUP FOUND',name)

groupfinder()

for循环中的代码应该在每个数组名称上运行,但仅坚持else语句。它输出所有的组都在域中时找到。

搜索到的汤品正在搜索所有声称的URL所具有的组的名称。我正在寻找一个无人认领的人。

1 个答案:

答案 0 :(得分:1)

您面临的问题与您使用的URL链接。现在是这样:

url = requests.get('https://steamcommunity.com/groups/').text + name

您正在(每次)向https://steamcommunity.com/groups/发送GET请求,并将氏族名称(name)附加到HTML文本的末尾。

您应该用这一行代替整行:

url = requests.get('https://steamcommunity.com/groups/' + name).text

希望这会有所帮助