Content aggregator using bs4 and requests
Your linesplit is... strange? I'm going to ignore that message and pretend it makes sense.
Whenever there's an API, prefer it. In this case Google has a Custom Search API that allows you to skip past all of the scraping insanity. You'll need to get an API key and configure an engine instance to search the whole web. The front-end of such an application, without including your second &quot;scrape all of the paragraphs&quot; step, looks like:
from typing import Iterable
from requests import Session


# To set a custom search engine to search the entire web, read
# https://support.google.com/programmable-search/answer/4513886
API_KEY = '...'
ENGINE_ID = '...'


def api_get(session: Session, query: str) -&gt; Iterable[str]:
    with session.get(
        'https://customsearch.googleapis.com/customsearch/v1',
        headers={'Accept': 'application/json'},
        params={
            'key': API_KEY,
            'cx': ENGINE_ID,
            'q': query,
        }
    ) as resp:
        resp.raise_for_status()
        body = resp.json()

    for item in body['items']:
        yield item['link']


def main():
    topic = input('Enter the topic: ').lower()

    with Session() as session:
        urls = api_get(session, topic)

    print('\n'.join(urls))


if __name__ == '__main__':
    main()