Skip to content

Instantly share code, notes, and snippets.

@Loveforkeeps
Created March 17, 2020 08:00
Show Gist options
  • Save Loveforkeeps/5b3331f62bde948bc484135eac1f4fda to your computer and use it in GitHub Desktop.
Save Loveforkeeps/5b3331f62bde948bc484135eac1f4fda to your computer and use it in GitHub Desktop.
urllib vs urllib3 vs requests Python3
from timeit import Timer
_URL = 'https://baidu.com'
_NUMBER = 10
def test_urllib():
import urllib.request
import urllib.error
try:
response = urllib.request.urlopen(_URL)
except urllib.error.HTTPError as e:
response = e
response.code
return response.read()
def test_urllib3():
import urllib3
http = urllib3.PoolManager()
response = http.request('GET', _URL)
response.status
return response.data
def test_requests():
import requests
response = requests.get(_URL)
response.status_code
return response.text
t_urllib2 = Timer("test_urllib2()", "from __main__ import test_urllib2")
print('{0} urllib2: {1}'.format(_NUMBER, t_urllib2.timeit(number=_NUMBER)))
t_urllib3 = Timer("test_urllib3()", "from __main__ import test_urllib3")
print('{0} urllib3: {1}'.format(_NUMBER, t_urllib3.timeit(number=_NUMBER)))
t_requests = Timer("test_requests()", "from __main__ import test_requests")
print('{0} requests: {1}'.format(_NUMBER, t_requests.timeit(number=_NUMBER)))
@Loveforkeeps
Copy link
Author

10 urllib2: 0.8630119720000948
10 urllib3: 22.80423276600004
10 requests: 3.069073326999842

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment