pro = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
os.killpg(os.getpgid(pro.pid), signal.SIGTERM)
where pip
def memoryEater():
"""eats memory"""
request = session.get(link).text
html = BeautifulSoup(request, "html.parser")
return html.select(".projects .proj")[0].select("h2 a")[0]["href"] #finding link of last project for save
def checkNewProjects(link, last_project, timeout, config, session):
"""Function for check new projects and for restarting timer event"""
time.sleep(timeout)#Wait pause before start parsing
print("Checking projects")
if last_project == "": #It is first launch of function. Need only find last project.
last_project = memoryEater()
checkNewProjects(link, last_project, timeout, config, session)
return
class HBox4(QGridLayout):
def __init__(self, parent=None):
super(HBox4, self).__init__(parent)
self.table = TableWidget()
self.addWidget(self.table, *(0,0))
self.addWidget(TabDemo(), *(0,1))
def update(self,data):
self.table.update(data)
class TableWidget(QTableWidget):
def __init__(self, parent=None, data=[]):
super(TableWidget, self).__init__(parent)
#data = []
self.setColumnCount(1)
self.setRowCount(len(data))
for i, entry in enumerate(data, start=1):
self.setRowCount(i)
item = QTableWidgetItem()
item.setText(str(entry))
def update(self,data):
self.clearContents ()
#тут очищаем таблицу, затем тот же код, что и в init
self.setColumnCount(1)
self.setRowCount(len(data))
for i, entry in enumerate(data, start=1):
self.setRowCount(i)
item = QTableWidgetItem()
item.setText(str(entry))
try:
cursor.execute("SELECT * FROM index WHERE complete = FALSE")
except Exception as e:
print(e)
return None
import requests
session = requests.Session()
rows = cursor.fetchall()
for row in rows:
print("open %s"%row[1])
try:
req = session.get(row[1])
#скачал что надо, обработал
except AttributeError as e:
print(e)
return None
try:
cursor.execute("INSERT INTO pages (fields) VALUES (%s)", ("что там напарсил",))
except Exception as e:
print(e)
return None
try:
cursor.execute("UPDATE index SET complete = TRUE WHERE id = %s",(row[0],))
except Exception as e:
print(e)
return None
db.commit()
(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\\d{1,3}\b)?(?P<host>\S+)