Ejemplo n.º 1
0
 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'
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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.
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
 def initSearchClient(self):
     http = HttpTransport()
     opener = urllib2.build_opener(HTTPSudsPreprocessor(self.SID))
     http.urlopener = opener
     self.client['search'] = Client(self.url['search'], transport=http)
Ejemplo n.º 15
0
 def __init__(self, transport=None):
     if transport is None:
         self.transport = HttpTransport()
     else:
         self.transport = transport
Ejemplo n.º 16
0
 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