Найдите несколько тегов в Beutifulsoup4 и вставьте их в одну строку

#python #python-3.x #beautifulsoup #pastebin

#python #python-3.x #beautifulsoup #pastebin

Вопрос:

У вас есть код, который получает данные вашего pastebin

 
def user_key():
    user_key_data = {'api_dev_key': 'my-dev-key',
                     'api_user_name': 'my-username',
                     'api_user_password': 'my-password'}
    req = urllib.request.urlopen('https://pastebin.com/api/api_login.php',
                                 urllib.parse.urlencode(user_key_data).encode('utf-8'),
                                 timeout=7)
    return req.read().decode()


def user_pastes()
    data = data = {'api_dev_key': 'my_dev_key',
                   'api_user_key': user_key(),
                   'api_option': 'list'}
    req = urllib.request.urlopen('https://pastebin.com/api/api_post.php',
                                 urllib.parse.urlencode(data).encode('utf-8'), timeout=7)
    return req.read().decode()
 

Каждая вставка имеет уникальный HTML-тег, например url, заголовок, ключ вставки и т.д.
Приведенный выше код распечатает их для каждой вставки.
Я создал код, который принимает только определенные теги. вставить URL-адрес, вставить заголовок и вставить ключ

     my_pastes = []
    src = user_pastes()
    soup = BeautifulSoup(src, 'html.parser')
    for paste in soup.findAll(['paste_url', 'paste_title', 'paste_key']):
        my_pastes.append(paste.text)
    print(my_pastes)
 

Что я хочу, так это объединить URL-адрес, заголовок и ключ для каждой вставки в одну строку.
Я попытался использовать .метод join, но он объединяет только символы. (может не иметь смысла, но вы увидите, когда попробуете)

Не имеет отношения к проблеме. Что я сделаю, как только они будут объединены. разделите их снова и поместите в таблицу PyQt5 введите описание изображения здесь

Ответ №1:

Итак, это своего рода ответ, но я все еще ищу более простой код

     title = []
    key = []
    url = []
    src = user_pastes()
    soup = BeautifulSoup(src, 'html.parser')
    for paste_title in soup.findAll('paste_title'):
        title.append(paste_title.text)
    for paste_key in soup.findAll('paste_key'):
        key.append(paste_key.text)
    for paste_url in soup.findAll('paste_url'):
        url.append(paste_url.text)
    for i in range(len(title)):
        print(title[i], key[i], url[i])
 

Возможно, из этого ответа вы получите представление о том, чего я хочу достичь, поскольку сообщение было немного запутанным, поскольку я не могу выразить то, что я хочу