Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import timeit
- import socket
- import StringIO
- import urllib
- import urllib2
- import httplib
- import requests
- import pycurl
- from urlparse import urlparse
- uagent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
- testUrl = 'http://vk.com/'
- okPattern = 'scroll_fix'
- maxIterations = 100
- socketTimeout = 5
- socket.setdefaulttimeout(socketTimeout)
- def testUrllib2():
- counter = 0
- opener = urllib2.build_opener()
- opener.addheaders = [('User-agent', uagent)]
- for loopCount in range(0, maxIterations):
- pageContent = opener.open(testUrl)
- html = pageContent.read()
- if okPattern in html:
- counter +=1
- print counter
- def testUrllib():
- counter = 0
- class myURLopener(urllib.FancyURLopener, object):
- version = uagent
- opener = myURLopener()
- for loopCount in range(0, maxIterations):
- pageContent = opener.open(testUrl)
- html = pageContent.read()
- if okPattern in html:
- counter +=1
- print counter
- def testHttplib():
- counter = 0
- headers = {'User-Agent': uagent}
- myUrl = urlparse(testUrl)
- conn = httplib.HTTPConnection(myUrl.netloc)
- for loopCount in range(0, maxIterations):
- conn.request("GET", myUrl.path, '', headers)
- pageContent = conn.getresponse()
- html = pageContent.read()
- if okPattern in html:
- counter +=1
- print counter
- def testSocket():
- counter = 0
- myUrl = urlparse(testUrl)
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect((myUrl.netloc, 80))
- for loopCount in range(0, maxIterations):
- sock.send("GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: %s\r\nConnection: Keep-Alive\r\n\r\n" % (myUrl.path, myUrl.netloc, uagent))
- html = sock.recv(65535)
- if okPattern in html:
- counter +=1
- sock.close()
- print counter
- def testRequests():
- counter = 0
- headers = {'User-Agent': uagent}
- for loopCount in range(0, maxIterations):
- r = requests.get(testUrl, headers=headers, stream=True, timeout=5)
- html = r.text
- if okPattern in html:
- counter +=1
- print counter
- def testPycurl():
- counter = 0
- html = StringIO.StringIO()
- curlHandler = pycurl.Curl()
- curlHandler.setopt(pycurl.USERAGENT, uagent)
- curlHandler.setopt(pycurl.WRITEFUNCTION, html.write)
- for loopCount in range(0, maxIterations):
- curlHandler.setopt(pycurl.URL, testUrl)
- curlHandler.perform()
- if okPattern in html.getvalue():
- counter +=1
- print counter
- method = "testUrllib()"
- print(method, timeit.timeit(method, setup="from __main__ import testUrllib", number=1))
- method = "testUrllib2()"
- print(method, timeit.timeit(method, setup="from __main__ import testUrllib2", number=1))
- method = "testHttplib()"
- print(method, timeit.timeit(method, setup="from __main__ import testHttplib", number=1))
- method = "testSocket()"
- print(method, timeit.timeit(method, setup="from __main__ import testSocket", number=1))
- method = "testRequests()"
- print(method, timeit.timeit(method, setup="from __main__ import testRequests", number=1))
- method = "testPycurl()"
- print(method, timeit.timeit(method, setup="from __main__ import testPycurl", number=1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement