Я хочу создать приложение GUI, которое запрашивает у пользователя чемпиона, которого они хотят проверить, а затем его роль (например, средний, джунгли, верхний, AD C, поддержка), а затем будет отображать «Наиболее частые Руны »и некоторые другие данные на сайте. Я считаю, что PyQt5 будет лучшим python GUI для этого, поскольку он имеет встроенные веб-страницы, но, пожалуйста, предложите альтернативы.
С этим кодом:
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import QApplication
import sys
#champion = input("What champion would you like to check? ")
champions = "Katarina"
#role = input("What role are you playing (Middle, Jungle, Top, ADC, Support)? ")
roles = "Middle"
URL = f"https://champion.gg/champion/{champions.capitalize()}/{roles.capitalize()}?"
app = QApplication(sys.argv)
web = QWebEngineView()
web.load(QUrl(URL))
web.show()
sys.exit(app.exec_())
Он отображает всю веб-страницу, но мне нужен только раздел «Наиболее часто встречающиеся руны», как это:
, а затем сохраните его как переменную (QLabel?), Которую затем можно разместить где угодно. Я пытался понять, как это сделать, но не смог найти решения. Я бы предпочел сделать это с помощью tkinter, но кажется, что это невозможно (или, насколько мне удалось понять - если это способ, пожалуйста, объясните как можно больше, как).
I попытался очистить веб-сайт с помощью bs4 и запросов с этим кодом:
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import *
from bs4 import BeautifulSoup
import requests
import time
import sys
#champion = input("What champion would you like to check? ")
champions = "Katarina"
#role = input("What role are you playing (Middle, Jungle, Top, ADC, Support)? ")
roles = "Middle"
URL = f"https://champion.gg/champion/{champions.capitalize()}/{roles.capitalize()}?"
app = QApplication(sys.argv)
page = requests.get('https://champion.gg/champion/Katarina/Middle?')
soup = BeautifulSoup(page.text, 'lxml')
championData = soup.find('div', 'summoner-text')
window = QWidget()
window.setWindowTitle("League of Legends helper")
window.setGeometry(100, 100, 550, 250)
runes = QLabel(championData, parent=window)
, но он просто выдает ошибки, которые я не смог полностью понять.
Ошибка:
Traceback (most recent call last):
File "(FILEPATH)", line 32, in <module>
runes = QLabel(championData, parent=window)
TypeError: arguments did not match any overloaded call:
QLabel(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()): argument 1 has unexpected type 'Tag'
QLabel(str, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()): argument 1 has unexpected type 'Tag'