Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 37 additions & 5 deletions http_request_randomizer/requests/proxy/requestProxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
from http_request_randomizer.requests.parsers.PremProxyParser import PremProxyParser
from http_request_randomizer.requests.useragent.userAgent import UserAgentManager

## Temporary imports
import datetime as dt
import pandas as pd
import pandas_datareader.data as web

__author__ = 'pgaref'
sys.path.insert(0, os.path.abspath('../../../../'))

Expand Down Expand Up @@ -88,6 +93,29 @@ def randomize_proxy(self):
self.current_proxy = rand_proxy
return rand_proxy

def generate_proxied_session(self, params={}, headers={}):
random.shuffle(self.proxy_list)

req_headers = dict(params.items())
req_headers_random = dict(self.generate_random_request_headers().items())
req_headers.update(req_headers_random)

if not self.sustain:
self.randomize_proxy()

headers.update(req_headers)

self.logger.debug("Session headers: {0}".format(str(headers)))
self.logger.debug("Session proxy: {0}".format(str(self.current_proxy)))

with requests.Session() as s:
s.headers = headers
print("-----")
print({self.current_proxy.get_address()})
print("-----")
s.proxies.update({'http': self.current_proxy.get_address()})
return s

#####
# Proxy format:
# http://<USERNAME>:<PASSWORD>@<IP-ADDR>:<PORT>
Expand Down Expand Up @@ -165,11 +193,15 @@ def generate_proxied_request(self, url, method="GET", params={}, data={}, header

while True:
start = time.time()
request = req_proxy.generate_proxied_request(test_url)
print("Proxied Request Took: {0} sec => Status: {1}".format((time.time() - start), request.__str__()))
if request is not None:
print("\t Response: ip={0}".format(u''.join(request.text).encode('utf-8')))
print("Proxy List Size: {0}".format(len(req_proxy.get_proxy_list())))
# request = req_proxy.generate_proxied_request(test_url)
start = dt.datetime(2019, 1, 10)
end = dt.datetime.now()
df = web.DataReader('^GSPC', 'yahoo', start, end, session=req_proxy.generate_proxied_session())
# print("Proxied Request Took: {0} sec => Status: {1}".format((time.time() - start), request.__str__()))
# if request is not None:
# print("\t Response: ip={0}".format(u''.join(request.text).encode('utf-8')))
# print("Proxy List Size: {0}".format(len(req_proxy.get_proxy_list())))
print(df.head)

print("-> Going to sleep..")
time.sleep(10)