Python for loop всегда использует оператор else - PullRequest
1 голос
/ 25 мая 2019

Я создаю программу, которая обнаружит страницу 404 с отпечатком. Чтобы обнаружить эти страницы, я использую имена из списка массивов, чтобы заполнить URL, например, это -> 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 Ответ

1 голос
/ 25 мая 2019

Проблема, с которой вы сталкиваетесь, связана с используемым вами URL-адресом.как сейчас:

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

Вы отправляете запрос GET на https://steamcommunity.com/groups/ (каждый раз) и добавляете имя клана (name) в конец текста HTML.

вы должны заменить всю эту строку на эту:

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

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...