This is a continuation of my other topic "How to access Qt components loaded from file", it was getting big and the focus changed completely, the real question there was already answered, and we were talking about signal/slot, QThred and other things.<br><br>So, I read on the web (didn't find books talking about QThred, Signal/Slot) and I came up with this code:<br><br>Python 3.4.2<div>PySide 1.2.2<br><br>from PySide.QtCore import QObject, QThread, Signal<br>import requests<br>import bs4<br><br>class Outpost(QObject, QThread):<br>    received = Signal()<br><br> def __init__(self, uid, *args, **kwargs):<br>    super().__init__(*args, **kwargs)<br>    self.url = '<a href="http://www.myurl.com/user/">http://www.myurl.com/user/</a>' + uid<br><br>def run(self):<br>    soup = bs4.BeautifulSoup(requests.get(self.url).text)<br><br>    with soup.select('div.stat_box div.value')[0].get_text().replace(',', '') as a, soup.select('div.stat_box div.value')[1].get_text() as b:<br>        self.info_a = a<br>        self.info_b = b<br><br>    self.received.emit(self)<br><br>Is this code good?<br><br>I'll explain what I think this code does, when I was doing this: First I created my custom signal, 'received'. Then I made my __init__ just to set a uid.<br><br>Then, the run func, I read that's the one that will run when working with threads. Here I set the soup and I get the page content using requests, that's the part that will take more time.<br><br><div>Then I use bs4 to set my data, and yes, I know that getting data this way isn't the best option, but I don't have other choice, they don't give APIs for this stuff.<br><br>Later I emit my signal when I have everything set and I pass the entire class with it so I can call the 'var.info_a' and 'bar.info_b' wherever I want.<br><br>Did I think correctly, can I do anything better here? Many thanks.<br></div></div>