Для зацикливания списка над функцией форматирования - PullRequest
0 голосов
/ 19 декабря 2018

Я смотрю на использование функции форматирования для анализа списка URL-адресов по циклу for и запуска нескольких команд для каждого URL-адреса.

Следующий код дает мне один из четырех пользователей.Как я могу перебрать каждого пользователя?Реализация + 1 для каждого URL.

from bs4 import BeautifulSoup
import requests

user_list = {'username':'social_media_username', 'username':'social_media_username' , 'username':'social_media_username' , 'username':'social_media_username'}
url_pattern = 'https://hypeauditor.com/report/{username}'

for user in zip(user_list):
    url = url_pattern.format(**user_list)
    r = requests.get(url)
    response = r.content.decode('utf-8')
    each_soup = BeautifulSoup(response, 'html.parser')

    for url in each_soup:
        get__data = each_soup.findAll(class_ = 'kyb-user-info-v2__el kyb-user-info-v2__el--followers')[1].find(class_='kyb-user-info-v2__sub-title').text
        print(get__data)

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Ваш "user_list" - это не список, это диктат.Ключи dicts являются уникальными, поэтому, поскольку вы используете один и тот же ключ («имя пользователя») для всех пользователей, в dict фактически сохраняется только одно значение, то есть:

>>> d = {"username":"foo", "username":"bar", "username":"baaz"}
>>> d
{'username': 'baaz'}

Также применяется zip() кДиктофон только выбирает ключи диктов:

>>> list(zip(d))
[('username',)]

Решение состоит в том, чтобы создать user_list правильный список - либо список диктов:

>>> users = [{"username":"foo"}, {"username":"bar"}, {"username":"baaz"}]
>>> for user in users:
...     print(pattern.format(**user))

или более просто (так как выиметь одно значение в каждом диктовке) список строк имени пользователя:

>>> usernames = ["foo", "bar", "baaz"]
>>> for username in usernames:
...     print(pattern.format(username=username))
0 голосов
/ 19 декабря 2018

Измените l на список пользователей и используйте его для получения сведений о подписчике.Я предполагаю, что последователи находятся в этом классе kyb-user-info-v2__el kyb-user-info-v2__el - последователи .

from bs4 import BeautifulSoup
import requests

l = [{'username':'social_media_username'}, {'username':'social_media_username'} , {'username':'social_media_username' },{'username':'social_media_username'}]
url_patter = 'https://hypeauditor.com/report/{username}'

for user in l:
    url = url_patter.format(**user)
    r = requests.get(url)
    response = r.content.decode('utf-8')
    each_soup =BeautifulSoup(response, 'html.parser')
    followers=each_soup.findAll(class_ = 'kyb-user-info-v2__el kyb-user-info-v2__el--followers')
    for follower in followers:
        # Get follower information
        get__data = follower.find(class_='kyb-user-info-v2__sub-title').text
        print(get__data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...