def _set_proxy(manager, server_url=None): proxy_settings = manager.get_proxy_settings() if proxy_settings.config == 'Manual': if proxy_settings.server and proxy_settings.port: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, hostName=proxy_settings.server, port=int(proxy_settings.port)) if proxy_settings.authenticated: proxy.setPassword(proxy_settings.password) proxy.setUser(proxy_settings.username) QNetworkProxy.setApplicationProxy(proxy) elif proxy_settings.config == 'System': QNetworkProxyFactory.setUseSystemConfiguration(True) elif proxy_settings.config == 'Automatic': proxy_settings = manager.get_proxies(server_url) protocol = server_url.split(":")[0] proxy_server_info = urllib2.urlparse.urlparse( proxy_settings[protocol]) proxy = QNetworkProxy(QNetworkProxy.HttpProxy, hostName=proxy_server_info.hostname, port=proxy_server_info.port) QNetworkProxy.setApplicationProxy(proxy) else: QNetworkProxy.setApplicationProxy( QNetworkProxy(QNetworkProxy.NoProxy))
def create_proxy(host, port, username=None, password=None): """ Create a new QNetworkProxy object """ port = int(port) if username is not None and password is not None: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host, port, username, password) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host, port) return proxy
def _customProxyList(self): proxies = [] for host, port, username, password in self.proxy_list: if username is not None and password is not None: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host, port, username, password) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host, port) proxies.append(proxy) return proxies
def __init__(self): QWebPage.__init__(self) self.networkAccessManager = QNetworkAccessManager() self.networkNoProxy = QNetworkProxy(QNetworkProxy.NoProxy) self.networkProxy = QNetworkProxy(QNetworkProxy.HttpProxy, "127.0.0.1", 8087) self.setNetworkAccessManager(self.networkAccessManager) self.loadFinished.connect(self._loadFinished)
def create_proxy(host, port, username=None, password=None, type=None): """ Create a new QNetworkProxy object """ if type is None: type = 'HTTP' validate_proxy_type(type) proxy_type = PROXY_TYPES[type.upper()] port = int(port) if username is not None and password is not None: proxy = QNetworkProxy(proxy_type, host, port, username, password) else: proxy = QNetworkProxy(proxy_type, host, port) return proxy
def _set_proxy(self, manager): proxy_settings = manager.get_proxy_settings() if proxy_settings.config == 'Manual': if proxy_settings.server and proxy_settings.port: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, hostName=proxy_settings.server, port=int(proxy_settings.port)) if proxy_settings.authenticated: proxy.setPassword(proxy_settings.password) proxy.setUser(proxy_settings.username) QNetworkProxy.setApplicationProxy(proxy) elif proxy_settings.config == 'System': QNetworkProxyFactory.setUseSystemConfiguration(True) else: QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.NoProxy))
def setUp(self): if len(argv) == 2: site = argv[1] else: site = None options = extract_options(site) if options['cookie_file'] is not None: options['cookie_file'] = ( expanduser("~/.eilat/cookies/") + options['cookie_file']) # Proxy if options['use_proxy']: proxy = QNetworkProxy() proxy.setType(QNetworkProxy.HttpProxy) proxy.setHostName('localhost') proxy.setPort(3128) QNetworkProxy.setApplicationProxy(proxy) self.mainwin = MainWin(clipboard=CLIPBOARD, options=options, parent=None) if site: self.mainwin.add_tab(site) else: self.mainwin.add_tab() self.mainwin.show()
def configureProxy(self, host, port, user=None, password=None): """Add a proxy configuration for the Network Requests. :param host: the proxy host :param port: the proxy port :param user: if the proxy has authentication this param sets the user to be used. It should be None if it's not required to access with a user :param password: if the proxy has authentication this param sets the password to be used. It should be None if it's not required to access with a password """ proxy = QNetworkProxy() proxy.setType(QNetworkProxy.HttpProxy) proxy.setHostName(host) proxy.setPort(port) if user is not None: proxy.setUser(user) if password is not None: proxy.setPassword(password) self._proxyAuth = (user, password) self.setProxy(proxy)
def set_proxy(self, proxy=None): """Set the proxy or using system configuration as None,supported socks5 http{s}. @param proxy: Example:socks5://username:[email protected]:7070 """ proxy_type = None if proxy: parse = urlparse(proxy) scheme = parse.scheme hostname = parse.hostname port = parse.port username = parse.username or '' password = parse.password or '' if scheme == 'socks5': proxy_type = QNetworkProxy.Socks5Proxy elif scheme in ('http', 'https'): proxy_type = QNetworkProxy.HttpProxy if proxy_type: self.page.networkAccessManager().setProxy( QNetworkProxy(proxy_type, hostname, port, username, password) ) else: QNetworkProxyFactory.setUseSystemConfiguration(True)
def get_proxy(): """ Get a proxy according to QSettings @return: proxy @rtype: QNetworkProxy """ s = QSettings() if s.value('proxy/proxyEnabled', '') == 'true': proxy_type = s.value('proxy/proxyType', '') proxy_host = s.value('proxy/proxyHost', '') proxy_port = s.value('proxy/proxyPort', '') proxy_user = s.value('proxy/proxyUser', '') proxy_password = s.value('proxy/proxyPassword', '') proxy = QNetworkProxy() if proxy_type == 'DefaultProxy': proxy.setType(QNetworkProxy.DefaultProxy) elif proxy_type == 'Socks5Proxy': proxy.setType(QNetworkProxy.Socks5Proxy) elif proxy_type == 'HttpProxy': proxy.setType(QNetworkProxy.HttpProxy) elif proxy_type == 'HttpCachingProxy': proxy.setType(QNetworkProxy.HttpCachingProxy) elif proxy_type == 'FtpCachingProxy': proxy.setType(QNetworkProxy.FtpCachingProxy) proxy.setHostName(proxy_host) proxy.setPort(int(proxy_port)) proxy.setUser(proxy_user) proxy.setPassword(proxy_password) return proxy else: return None
def __init__(self, args, parent=None): QObject.__init__(self, parent) # variable declarations self.m_defaultPageSettings = {} self.m_pages = [] self.m_verbose = args.verbose self.m_page = WebPage(self) self.m_returnValue = 0 self.m_terminated = False # setup the values from args self.m_scriptFile = args.script self.m_args = args.script_args self.m_filesystem = FileSystem(self) self.m_pages.append(self.m_page) do_action('PhantomInitPre') if not args.proxy: QNetworkProxyFactory.setUseSystemConfiguration(True) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, args.proxy[0], int(args.proxy[1])) QNetworkProxy.setApplicationProxy(proxy) # Provide WebPage with a non-standard Network Access Manager self.m_netAccessMan = NetworkAccessManager(args.disk_cache, args.ignore_ssl_errors, self) self.m_page.setNetworkAccessManager(self.m_netAccessMan) self.m_page.javaScriptConsoleMessageSent.connect( self.printConsoleMessage) self.m_defaultPageSettings['loadImages'] = args.load_images self.m_defaultPageSettings['loadPlugins'] = args.load_plugins self.m_defaultPageSettings['userAgent'] = self.m_page.userAgent() self.m_defaultPageSettings[ 'localAccessRemote'] = args.local_access_remote self.m_page.applySettings(self.m_defaultPageSettings) self.libraryPath = os.path.dirname(os.path.abspath(self.m_scriptFile)) # inject our properties and slots into javascript self.m_page.mainFrame().addToJavaScriptWindowObject('phantom', self) self.m_page.mainFrame().addToJavaScriptWindowObject( 'fs', self.m_filesystem) bootstrap = QFile(':/bootstrap.js') if not bootstrap.open(QFile.ReadOnly): sys.exit('Can not bootstrap!') bootstrapper = str(bootstrap.readAll()) bootstrap.close() if not bootstrapper: sys.exit('Can not bootstrap!') self.m_page.mainFrame().evaluateJavaScript(bootstrapper) do_action('PhantomInitPost')
def set_proxy_settings(): http = backend.pm.Iface().getConfig().get("general", "http_proxy") if http and not http == "None": items = parse_proxy(http) QNetworkProxy.setApplicationProxy( QNetworkProxy(QNetworkProxy.HttpProxy, items['host'], int(items['port']), items['user'] or '', items['pass'] or ''))
def configure_proxy(self): proxy = urlparse(os.environ.get('http_proxy') or os.environ.get('HTTP_PROXY')) if proxy.hostname is not None and proxy.port is not None: q_network_proxy = QNetworkProxy(QNetworkProxy.HttpProxy, proxy.hostname, proxy.port) if proxy.username is not None: q_network_proxy.setUser(proxy.username) if proxy.password is not None: q_network_proxy.setPassword(proxy.password) QNetworkProxy.setApplicationProxy(q_network_proxy)
def build_proxy(settings_groups): """Create a QNetworkProxy from these settings.""" proxy_groups = [ ("socks", QNetworkProxy.Socks5Proxy), ("https", QNetworkProxy.HttpProxy), ("http", QNetworkProxy.HttpProxy), ] for group, proxy_type in proxy_groups: if group not in settings_groups: continue settings = settings_groups[group] if "host" in settings and "port" in settings: return QNetworkProxy(proxy_type, hostName=settings.get("host", ""), port=settings.get("port", 0), user=settings.get("username", ""), password=settings.get("password", "")) logger.error("No proxy correctly configured.") return QNetworkProxy(QNetworkProxy.DefaultProxy)
def setTempProxy(self, host, port=None, username=None, password=None): proxy = QNetworkProxy() proxy.setType(QNetworkProxy.HttpProxy) if username: proxy.setUser(username) if password: proxy.setPassword(password) if port: proxy.setPort(port) proxy.setHostName(host) self.page().networkAccessManager().setProxy(proxy)
def _setQtProxy(self): proxy_str = '' if self.proxy.has_key('http'): proxy_str = self.proxy['http'] elif self.proxy.has_key('https'): proxy_str = self.proxy['https'] if proxy_str != '': p = urlparse.urlparse(proxy_str) proxy = QNetworkProxy(QNetworkProxy.HttpProxy, p.hostname, p.port) QNetworkProxy.setApplicationProxy(proxy)
def __init__(self, parent, args): super(Phantom, self).__init__(parent) # variable declarations self.m_defaultPageSettings = {} self.m_pages = [] self.m_servers = [] self.m_verbose = args.verbose self.m_page = WebPage(self, args) self.m_returnValue = 0 self.m_terminated = False # setup the values from args self.app_args = args self.m_scriptFile = args.script self.m_args = args.script_args self.m_scriptEncoding = Encode(args.script_encoding, 'utf-8') self.m_outputEncoding = Encode(args.output_encoding, sys.stdout.encoding_sys) self.m_pages.append(self.m_page) do_action('PhantomInitPre') if args.proxy is None: QNetworkProxyFactory.setUseSystemConfiguration(True) else: proxy = QNetworkProxy(args.proxy_type, args.proxy[0], int(args.proxy[1])) QNetworkProxy.setApplicationProxy(proxy) self.m_page.javaScriptConsoleMessageSent.connect( self.printConsoleMessage) self.m_defaultPageSettings['loadImages'] = args.load_images self.m_defaultPageSettings['loadPlugins'] = args.load_plugins self.m_defaultPageSettings['javascriptEnabled'] = True self.m_defaultPageSettings['XSSAuditingEnabled'] = False self.m_defaultPageSettings['userAgent'] = self.m_page.userAgent() self.m_defaultPageSettings[ 'localToRemoteUrlAccessEnabled'] = args.local_to_remote_url_access self.m_page.applySettings(self.m_defaultPageSettings) self.libraryPath = os.path.dirname(os.path.abspath(self.m_scriptFile)) # inject our properties and slots into javascript self.m_page.mainFrame().addToJavaScriptWindowObject('phantom', self) with QPyFile(':/bootstrap.js') as f: self.m_page.mainFrame().evaluateJavaScript(f.readAll()) do_action('PhantomInitPost')
def setProxy(self, proxy): """Parse proxy components from proxy """ if proxy: fragments = common.parse_proxy(proxy) if fragments['host']: QNetworkAccessManager.setProxy( self, QNetworkProxy(QNetworkProxy.HttpProxy, fragments['host'], int(fragments['port']), fragments['username'], fragments['password'])) else: common.logger.info('Invalid proxy: ' + str(proxy))
def __init__(self, args, parent = None): QObject.__init__(self, parent) # variable declarations self.m_loadStatus = self.m_state = self.m_userAgent = QString() self.m_page = WebPage(self) self.m_var = self.m_paperSize = self.m_loadScript_cache = {} # setup the values from args self.m_script = QString.fromUtf8(args.script[0].read()) self.m_scriptFile = args.script[0].name self.m_args = args.script[1:] self.m_upload_file = args.upload_file autoLoadImages = False if args.load_images == 'no' else True pluginsEnabled = True if args.load_plugins == 'yes' else False args.script[0].close() palette = self.m_page.palette() palette.setBrush(QPalette.Base, Qt.transparent) self.m_page.setPalette(palette) if not args.proxy: QNetworkProxyFactory.setUseSystemConfiguration(True) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, args.proxy[0], int(args.proxy[1])) QNetworkProxy.setApplicationProxy(proxy) self.m_page.settings().setAttribute(QWebSettings.AutoLoadImages, autoLoadImages) self.m_page.settings().setAttribute(QWebSettings.PluginsEnabled, pluginsEnabled) self.m_page.settings().setAttribute(QWebSettings.FrameFlatteningEnabled, True) self.m_page.settings().setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, True) self.m_page.settings().setAttribute(QWebSettings.LocalStorageEnabled, True) self.m_page.settings().setLocalStoragePath(QDesktopServices.storageLocation(QDesktopServices.DataLocation)) self.m_page.settings().setOfflineStoragePath(QDesktopServices.storageLocation(QDesktopServices.DataLocation)) # Ensure we have a document.body. self.m_page.mainFrame().setHtml('<html><body></body></html>') self.m_page.mainFrame().setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff) self.m_page.mainFrame().setScrollBarPolicy(Qt.Vertical, Qt.ScrollBarAlwaysOff) # if our script was called in a different directory, change to it # to make any dealings with files be relative to the scripts directory if os.path.dirname(self.m_scriptFile): os.chdir(os.path.dirname(self.m_scriptFile)) # inject our properties and slots into javascript self.setObjectName('phantom') self.connect(self.m_page.mainFrame(), SIGNAL('javaScriptWindowObjectCleared()'), self.inject) self.connect(self.m_page, SIGNAL('loadFinished(bool)'), self.finish)
def setProxy(self, proxy): """Allow setting string as proxy """ if proxy: fragments = common.parse_proxy(proxy) if fragments.host: QNetworkAccessManager.setProxy(self, QNetworkProxy(QNetworkProxy.HttpProxy, fragments.host, int(fragments.port), fragments.username, fragments.password ) ) else: common.logger.info('Invalid proxy: ' + str(proxy)) proxy = None
def set_proxy(self, type, host='localhost', port=8888, user='', password=''): """Set up proxy for FURTHER connections. :param type: proxy type to use: \ none/default/socks5/https/http. :param host: proxy server ip or host name. :param port: proxy port. """ _types = { 'default': QNetworkProxy.DefaultProxy, 'none': QNetworkProxy.NoProxy, 'socks5': QNetworkProxy.Socks5Proxy, 'https': QNetworkProxy.HttpProxy, 'http': QNetworkProxy.HttpCachingProxy } if type is None: type = 'none' type = type.lower() if type in ['none', 'default']: self.manager.setProxy(QNetworkProxy(_types[type])) return elif type in _types: proxy = QNetworkProxy(_types[type], hostName=host, port=port, user=user, password=password) self.manager.setProxy(proxy) else: raise ValueError, 'Unsupported proxy type:' + type \ + '\nsupported types are: none/socks5/http/https/default'
def setProxy(self, proxy): """Allow setting string as proxy """ if isinstance(proxy, basestring): match = re.match('((?P<username>\w+):(?P<password>\w+)@)?(?P<host>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})(:(?P<port>\d+))?', proxy) if match: groups = match.groupdict() username = groups.get('username') or '' password = groups.get('password') or '' host = groups.get('host') port = groups.get('port') #print host, port, username, password proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host, int(port), username, password) else: common.logger.info('Invalid proxy:' + proxy) proxy = None if proxy: QNetworkAccessManager.setProxy(self, proxy)
def get_proxy(): """Adaption by source of Plugin Installer - Version 1.0.10 :returns: Get proxy that currently used. :rtype: QNetworkProxy """ settings = QSettings() settings.beginGroup('proxy') enabled = settings.value('/proxyEnabled', False, type=bool) if not enabled: return None proxy = QNetworkProxy() try: proxy_type = settings.value('/proxyType', 0, type=int) except TypeError: # Catch for this: # TypeError: unable to convert a QVariant of type 10 to a # QMetaType of type 2 # TODO: can we do anything to handle this more gracefully? TS settings.setValue('/proxyType', 0) return proxy if proxy_type in ['1', 'Socks5Proxy']: proxy.setType(QNetworkProxy.Socks5Proxy) elif proxy_type in ['2', 'NoProxy']: proxy.setType(QNetworkProxy.NoProxy) elif proxy_type in ['3', 'HttpProxy']: proxy.setType(QNetworkProxy.HttpProxy) elif proxy_type in ['4', 'HttpCachingProxy'] and QT_VERSION >= 0X040400: proxy.setType(QNetworkProxy.HttpCachingProxy) elif proxy_type in ['5', 'FtpCachingProxy'] and QT_VERSION >= 0X040400: proxy.setType(QNetworkProxy.FtpCachingProxy) else: proxy.setType(QNetworkProxy.DefaultProxy) proxy.setHostName(settings.value('/proxyHost')) proxy.setPort(settings.value('/proxyPort', type=int)) user = settings.value('/proxyUser', type=str) password = settings.value('/proxyPassword', type=str) if user is not None: proxy.setUser(user) if password is not None and user is not None: proxy.setPassword(password) settings.endGroup() return proxy
def startpickup(self, purse): # ставим Tor в качестве прокси, чтобы ходить на сайт по многу раз proxy = QNetworkProxy(QNetworkProxy.Socks5Proxy, TOR_HOST, TOR_PORT) QNetworkProxy.setApplicationProxy(proxy) newnym() ''' b = Browser() b.get('http://2ip.ru/') ip = b.js("$('div.ip big').text()") hostname = b.js("$('.ip-info-entry table:eq(1) tr:eq(0) td').text().trim()") os = b.js("$('.ip-info-entry table:eq(1) tr:eq(1) td').text().trim()") browser = b.js("$('.ip-info-entry table:eq(1) tr:eq(2) td').text().trim()") location = b.js("$('.ip-info-entry table:eq(1) tr:eq(3) td').text().trim()") provider = b.js("$('.ip-info-entry table:eq(1) tr:eq(4) td').text().trim()") log.info('start(): proxy: %s:%s, ip: %s, hostname: %s, os: %s, browser: %s, location: %s, provider: %s' % (colorize((TOR_HOST, TOR_PORT, ip, hostname, os, browser, location, provider)))) ''' self.purse = purse QTimer.singleShot(0, self.pickup)
def configure_proxy(cls, hostname, port, user=None, password=None, proxy_type=QNetworkProxy.HttpProxy): """ Configure network proxy layer. @param proxy_type: see QNetworkProxy.ProxyType. Default: HttpProxy. @param hostname: Proxy hostname. @param port: Proxy port. @param username: Proxy username (optional). @param passwrod: Proxy password (optional). """ proxy = QNetworkProxy() proxy.setType(proxy_type) proxy.setHostName(hostname) proxy.setPort(port) if user and password is not None: proxy.setUser(user) proxy.setPassword(password) QNetworkProxy.setApplicationProxy(proxy)
def _get_default_proxy_list(self): return [QNetworkProxy(QNetworkProxy.DefaultProxy)]
def __init__(self, args, parent=None): QObject.__init__(self, parent) # variable declarations self.m_loadStatus = self.m_state = '' self.m_var = self.m_paperSize = self.m_loadScript_cache = {} self.m_verbose = args.verbose self.m_page = WebPage(self) self.m_clipRect = QRect() # setup the values from args self.m_script = args.script.read() self.m_scriptFile = args.script.name self.m_scriptDir = os.path.dirname(args.script.name) + '/' self.m_args = args.script_args self.m_upload_file = args.upload_file autoLoadImages = False if args.load_images == 'no' else True pluginsEnabled = True if args.load_plugins == 'yes' else False args.script.close() do_action('PhantomInitPre', Bunch(locals())) palette = self.m_page.palette() palette.setBrush(QPalette.Base, Qt.transparent) self.m_page.setPalette(palette) if not args.proxy: QNetworkProxyFactory.setUseSystemConfiguration(True) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, args.proxy[0], int(args.proxy[1])) QNetworkProxy.setApplicationProxy(proxy) self.m_page.settings().setAttribute(QWebSettings.AutoLoadImages, autoLoadImages) self.m_page.settings().setAttribute(QWebSettings.PluginsEnabled, pluginsEnabled) self.m_page.settings().setAttribute( QWebSettings.FrameFlatteningEnabled, True) self.m_page.settings().setAttribute( QWebSettings.OfflineStorageDatabaseEnabled, True) self.m_page.settings().setAttribute(QWebSettings.LocalStorageEnabled, True) self.m_page.settings().setLocalStoragePath( QDesktopServices.storageLocation(QDesktopServices.DataLocation)) self.m_page.settings().setOfflineStoragePath( QDesktopServices.storageLocation(QDesktopServices.DataLocation)) # Ensure we have a document.body. self.m_page.mainFrame().setHtml('<html><body></body></html>') self.m_page.mainFrame().setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff) self.m_page.mainFrame().setScrollBarPolicy(Qt.Vertical, Qt.ScrollBarAlwaysOff) m_netAccessMan = NetworkAccessManager(args.disk_cache, args.ignore_ssl_errors, self) self.m_page.setNetworkAccessManager(m_netAccessMan) # inject our properties and slots into javascript self.m_page.mainFrame().javaScriptWindowObjectCleared.connect( self.inject) self.m_page.loadFinished.connect(self.finish) do_action('PhantomInitPost', Bunch(locals()))
def reset_proxy_settings(): QNetworkProxy.setApplicationProxy(QNetworkProxy())
def _defaultProxyList(self): return [QNetworkProxy(QNetworkProxy.DefaultProxy)]
def removeProxy(self): """Removes the proxy configuration """ proxy = QNetworkProxy() proxy.setType(QNetworkProxy.NoProxy) self.setProxy(proxy)