Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1"""LICENSE 

2Copyright 2019 Hermann Krumrey <hermann@krumreyh.com> 

3 

4This file is part of puffotter. 

5 

6puffotter is free software: you can redistribute it and/or modify 

7it under the terms of the GNU General Public License as published by 

8the Free Software Foundation, either version 3 of the License, or 

9(at your option) any later version. 

10 

11puffotter is distributed in the hope that it will be useful, 

12but WITHOUT ANY WARRANTY; without even the implied warranty of 

13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

14GNU General Public License for more details. 

15 

16You should have received a copy of the GNU General Public License 

17along with puffotter. If not, see <http://www.gnu.org/licenses/>. 

18LICENSE""" 

19 

20import time 

21import requests 

22import logging 

23 

24 

25def aggressive_request(url: str) -> str: 

26 """ 

27 Handles GET requests while analyzing status codes 

28 :param url: The URL to get 

29 :return: The response text 

30 """ 

31 logger = logging.getLogger("puffotter") 

32 

33 time.sleep(1) 

34 headers = {"User-Agent": "Mozilla/5.0"} 

35 resp = requests.get(url, headers=headers) 

36 

37 while resp.status_code >= 300: 

38 logger.warning("HTTP Error Code: {}".format(resp.status_code)) 

39 logger.debug(resp.headers) 

40 logger.debug(resp.text) 

41 time.sleep(60) 

42 resp = requests.get(url, headers=headers) 

43 

44 return resp.text