Фильтрация текста и ссылок

Нужно получить href и текст из тэга "a" с помощью beautifulsoup

Не знаю как переделать этот код под эту задачу:

def main(speed):
    global cycle, url, response, soup
    while True:
        sleep(int(speed))
        url = 'https://freelance.habr.com/tasks?q=python'
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'lxml')
        print("<>" * 27)

            #Этот цикл фильтрует всё кроме сылок на объявления
        for a in soup.find_all('a', href=True): 
            if "/tasks/" in a['href']:
                print("Found the URL:", "https://freelance.habr.com" + a['href'] + "|===")
                a.decompose()
                print(a)

Ответы (1 шт):

Автор решения: gil9red

Заметил, что у тех ссылок на объявления класс task__title, тогда можно пройтись по ним и вытащить ссылки.

А чтобы не составлять вручную абсолютную ссылку использовать urljoin

Пример:

from urllib.parse import urljoin

import requests
from bs4 import BeautifulSoup

rs = requests.get('https://freelance.habr.com/tasks?q=python')
root = BeautifulSoup(rs.content, 'html.parser')
urls = [
    (urljoin(rs.url, a['href']), a.get_text(strip=True))
    for a in root.select('.task__title > a[href]')
]
print(len(urls), urls)
# 25 [('https://freelance.habr.com/tasks/349695', 'Парсер'), ..., 'Доработка бота Telegram на Python')]
→ Ссылка