def initSearchClient(self): print 'initialize search....' http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(self.SID)) http.urlopener = opener self.client['search'] = Client(self.url['search'], transport = http) print 'searching initializtion done'
def _add_sid(self): """Create URL opener with authentication token as header.""" opener = urllib2.build_opener() opener.addheaders = [('Cookie', 'SID="' + self.sid_token + '"')] http = HttpTransport() http.urlopener = opener self._establish_search_client(http)
def citingArticles(UID, SID): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener url['citingArticles'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['citingArticles'] = Client(url['citingArticles'], transport=http) databaseId = "WOS" uid = UID queryLanguage = "en" editions = None timeSpan = {'begin': "2003-01-01", 'end': "2017-12-31"} rparams = {'count': 100, 'firstRecord': 1, 'viewField': {'collectionName': 'WOS', 'fieldName': ['pub_info', 'titles']}} check_time(start_time) return client['citingArticles'].service.citingArticles(databaseId, uid, editions, timeSpan, queryLanguage, rparams)
def search_lite(fieldtag, searchterm, ver, count, SID): #fieldtag must be 'PN = ' or 'CD =' http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener client_obj = Client(SEARCH_LITE_URL[int(ver - 2)], transport = http, retxml = True) query = fieldtag + '=' + searchterm #construct query and retrieve field parameters qparams = { 'databaseId' : 'DIIDW', 'userQuery' : query, 'queryLanguage' : 'en', 'editions' : [{ 'collection' : 'DIIDW', 'edition' : 'CDerwent', },{ 'collection' : 'DIIDW', 'edition' : 'MDerwent', },{ 'collection' : 'DIIDW', 'edition' : 'EDerwent', }] } rparams = { 'count' : count, # 1-500 'firstRecord' : 1, 'sortField' : [{ 'name' : 'TC', 'sort' : 'D', }] } result = client_obj.service.search(qparams, rparams) return result
def conectar(self): url = 'http://ws01.reclameaqui.com.br/webservice.php?wsdl' t = HttpTransport() proxy = urllib2.ProxyHandler({'http': 'http://5.9.41.147:6680'}) opener = urllib2.build_opener(proxy) t.urlopener = opener self.client = Client( url, transport=t, username=self.username, password=self.password)
def citedReferencesRetrieve(queryId, SID, start_count): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener url['citedReferencesRetrieve'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['citedReferencesRetrieve'] = Client(url['citedReferencesRetrieve'], transport=http) rparams = {'count': 100, 'firstRecord': start_count} check_time(start_time) return client['citedReferencesRetrieve'].service.citedReferencesRetrieve(queryId, rparams)
def search(query, SID): url = client = {} http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener url['search'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['search'] = Client(url['search'], transport=http) qparams = {'databaseId': 'WOS', 'userQuery': query, 'queryLanguage': 'en'} rparams = { 'count': 100, # 1-100 'firstRecord': 1 } return client['search'].service.search(qparams, rparams)
def search(fieldtag, searchterm, ver, count, SID): ''' Makes a search query to the database. :param fieldtag: fieldtag must be 'PN = ' or 'CD =' :param searchterm: search term. in this case, the patent number. :param ver: version 2 or 3. refer to the thomson reuters documentation. :param count: requested retrieval count. :param SID: Session ID. :return: output xml. ''' http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener client_obj = Client(SEARCH_URL[int(ver - 2)], transport = http, retxml = True) query = fieldtag + '=' + searchterm #construct query and retrieve field parameters qparams = { 'databaseId' : 'DIIDW', 'userQuery' : query, 'queryLanguage' : 'en', 'editions' : [{ 'collection' : 'DIIDW', 'edition' : 'CDerwent', },{ 'collection' : 'DIIDW', 'edition' : 'MDerwent', },{ 'collection' : 'DIIDW', 'edition' : 'EDerwent', }] } rparams = { 'count' : count, # 1-500 'firstRecord' : 1, 'sortField' : [{ 'name' : 'Relevance', 'sort' : 'D', }] } result = client_obj.service.search(qparams, rparams) return result
def retrieveById(UID, SID): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener url['retrieveById'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['retrieveById'] = Client(url['retrieveById'], transport=http) databaseId = "WOS" uid = UID queryLanguage = "en" rparams = {'count': 1, 'firstRecord': 1} check_time(start_time) return client['retrieveById'].service.retrieveById(databaseId, uid, queryLanguage, rparams)
def retrieveById(UID, SID): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) #build_opener returns OpenerDirector object http.urlopener = opener #hands OpenerDirector object to http url['retrieveById'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['retrieveById'] = Client(url['retrieveById'], transport=http) databaseId = "WOS" # qparams?! uid = UID queryLanguage = "en" rparams = {'count': 1, # retrieve 1 result instead of 100 'firstRecord': 1} check_time(start_time) #where does this come from?! return client['retrieveById'].service.retrieveById(databaseId, uid, queryLanguage, rparams)
def search(query, SID): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) #build_opener returns an OpenerDirector instance http.urlopener = opener url['search'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['search'] = Client(url['search'], transport=http) qparams = {'databaseId': 'WOS', 'userQuery': query, 'queryLanguage': 'en'} # parameters of our query. there are optional parameters such as time etc rparams = {'count': 100, 'firstRecord': 1} check_time(start_time) return client['search'].service.search(qparams, rparams) # constructs query and returns list ish thing with id as first element, result, etc.
def retrieve(queryId, SID, start_count, namespace): url = client = {} start_time = time.time() http = HttpTransport() opener = urllib.request.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener url['retrieve'] = 'http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl' client['retrieve'] = Client(url['retrieve'], transport=http) if namespace == "FullRecord": rparams = {'count': 100, 'firstRecord': start_count} else: rparams = {'count': 100, 'firstRecord': start_count, 'viewField': {'collectionName': 'WOS', 'fieldName': ['pub_info', 'titles']}} check_time(start_time) return client['retrieve'].service.retrieve(queryId, rparams)
def retrieve_by_id_lite(input_term, ver, start_record, max_count, SID): ''' This is a method used for lite services. :param input_term: input search term. :param ver: Version 2 or 3. Refer to Thomson Reuters Documentation for details. :param start_record: starting record point :param max_count: maximum request count :param SID: Session ID. :return: output xml ''' http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(SID)) http.urlopener = opener client_obj = Client(SEARCH_LITE_URL[int(ver - 2)], transport = http, retxml = True) rparams = { 'count' : max_count, # 1-100 'firstRecord' : start_record, 'sortField' : [{ 'name' : 'Relevance', 'sort' : 'D', }] } cited_results = client_obj.service.retrieveById('DIIDW', input_term, 'en', rparams) return cited_results
def initSearchClient(self): http = HttpTransport() opener = urllib2.build_opener(HTTPSudsPreprocessor(self.SID)) http.urlopener = opener self.client['search'] = Client(self.url['search'], transport=http)
def __init__(self, transport=None): if transport is None: self.transport = HttpTransport() else: self.transport = transport
def __init__(self, server=None, username=None, password=None, wsdl_location="local", timeout=30, plugins=[], sslcontext=None): self._logged_in = False if server is None: server = _config_value("general", "server") if username is None: username = _config_value("general", "username") if password is None: password = _config_value("general", "password") if server is None: raise ConfigError("server must be set in config file or Client()") if username is None: raise ConfigError( "username must be set in config file or Client()") if password is None: raise ConfigError( "password must be set in config file or Client()") if sslcontext is not None: self.transport = HTTPSClientContextTransport(sslcontext) else: self.transport = HttpTransport() self.server = server self.username = username self.password = password url = "https://%s/sdk" % self.server if wsdl_location == "local": current_path = os.path.abspath(os.path.dirname(__file__)) current_path = current_path.replace('\\', '/') if not current_path.startswith('/'): current_path = '/' + current_path if current_path.endswith('/'): current_path = current_path[:-1] wsdl_uri = ("file://%s/wsdl/vimService.wsdl" % current_path) elif wsdl_location == "remote": wsdl_uri = url + "/vimService.wsdl" else: raise ValueError("wsdl_location must be \"local\" or \"remote\"") # Init the base class try: # Add ExtraConfigPlugin to the plugins plugins.append(ExtraConfigPlugin()) suds.client.Client.__init__(self, wsdl_uri, plugins=plugins, transport=self.transport) except URLError: logger.critical("Failed to connect to %s", self.server) raise except IOError: logger.critical("Failed to load the local WSDL from %s", wsdl_uri) raise except TransportError: logger.critical("Failed to load the remote WSDL from %s", wsdl_uri) raise self.options.transport.options.timeout = timeout self.set_options(location=url, transport=self.transport) mo_ref = soap.ManagedObjectReference("ServiceInstance", "ServiceInstance") self.si = ServiceInstance(mo_ref, self) try: self.sc = self.si.RetrieveServiceContent() except URLError, e: logger.critical("Failed to connect to %s" % self.server) logger.critical("urllib2 said: %s" % e.reason) raise