Python. Как ввести много значений в input() и обработать их
Есть программа для парсинга страниц игр в Steam. Правда в тудв можно ввести только одну старницу. Как можно ввести сразу не одну а много ссылок. И получить по всем результат.
Вот :

Вот код:
import requests
from bs4 import BeautifulSoup
import os
HEADERS = {'user-agent': '...', 'accept': '*/*'}
def get_html(url, params=None):
r = requests.get(url, headers=HEADERS, params=params)
return r
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_='page_content_ctn')
something = []
for item in items:
something.append({
'name': item.find('div', class_='apphub_AppName').get_text(strip=True),
'cost': item.find('div', class_='game_purchase_price price').get_text(strip=True),
})
print(something)
def parse():
URL = input('URL: ')
URL = URL.strip()
html = get_html(URL)
if html.status_code == 200:
something = get_content(html.text)
else:
print('Error')
parse()
Спасибо
Ответы (1 шт):
Автор решения: Kers
→ Ссылка
На вход вводится url-ы через пробел. Далее разбить на список. И обработать все элементы списка.
По идее должно получиться как то так:
def parse():
URL = input('URL: ')
urllist = URL.split(" ") # получаем список url
for i in urlist: # Выполняем код для каждого элемента в списке
html = get_html(i.strip())
if html.status_code == 200:
something = get_content(html.text)
else:
print('Error')
2 Вариант:
def parse():
URL = []
print("URL: ", end='')
while True: # запрашиваем ввод в бесконечном цикле
data = input()
if data == "": # пока не получим пустую строку
break
URL.append(data) # Полученные данные добавим в список URL
for i in URL:
html = get_html(i.strip())
if html.status_code == 200:
something = get_content(html.text)
else:
print('Error')
