我正在学习Python并决定尝试网络抓取。所以我编写的代码可以从Runescape.com获得玩家数量。但现在我想在按下按钮时将该数字设置为Kivy中的标签文本。 这是代码:
import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from lxml import html
import requests
class Runescape(BoxLayout):
def __init__(self,**kwargs):
super(Runescape,self).__init__(**kwargs)
self.label = Label(text="")
self.button = Button(text="press_me")
self.add_widget(self.label)
self.add_widget(self.button)
def update(self, count):
# This should update label text
pass
class Appcrawler:
def __init__(self, url):
self.url = url
self.count= []
def crawl(self):
self.get_app_from_link(self.url)
return
def get_app_from_link(self, link):
start_page = requests.get(link)
tree = html.fromstring(start_page.text)
count = tree.xpath('//p[@class="player-count"]/text()')[0]
cnt = count.split()
self.count.append(cnt)
def run():
crawler = Appcrawler("http://oldschool.runescape.com/?jptg=ia&jptv=promo_box")
crawler.crawl()
for cnt in crawler.count:
print cnt[3]
class MyApp(App):
def build(self):
return Runescape()
run()
if __name__ == '__main__':
MyApp().run()