Сокращение времени на получение отклика requests
Собственно. Есть список ссылок, если интернет доступен - ссылки отправляются в функцию, которая проводит свои манихации и вставляет их в лэйбл. Однако попадаются заблокированные ссылки, которые без прокси не откроешь. К ним нужно отдельное поведение. Я попытался реализовать это через requests.get, тем более что он у меня в этой функции используется. И с конструкцией try-except всё работает как надо, однако он довольно долго пытается к ней пробиться. Как можно сократить это время?
p.s вставил joyreactor потому что этот сайт в моей стране недоступен. Какую бы вставить универсальную - не знаю.
import sys, os
from PyQt5 import QtWidgets
from PyQt5.QtGui import QMovie, QPixmap
from PyQt5.QtWidgets import *
from threading import Thread
import socket
import requests
def network_connection_check(link):
try:
socket.gethostbyaddr(link)
except socket.gaierror:
return False
return True
class MyWin(QWidget):
def __init__(self):
super().__init__()
self.vbox = QtWidgets.QVBoxLayout(self)
links = ['http://www.joyreactor.cc', 'https://www.youtube.com/',
'https://www.google.com/']
for i in links:
label = QtWidgets.QLabel()
self.vbox.addWidget(label)
thread = Thread(target=self.html_foo, args=(i, label))
if network_connection_check('www.google.com') is True:
thread.start()
def html_foo(self, link, label):
try:
page = requests.get(link)
label.setText(str(page))
except:
label.setText(link + 'error')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MyWin()
w.show()
Ответы (1 шт):
Можно изменить время получения отклика с помощью параметра timeout.
Информация из документации requests
def html_foo(self, link, label):
try:
page = requests.get(link, timeout=4)
label.setText(str(page))
except:
label.setText(link + 'error')