Exemple #1
0
 def obten_resultados(self,
                      url,
                      resultados,
                      iteracion,
                      proxy,
                      user_agent,
                      intervalo,
                      obten_emails,
                      verboso=False):
     s = requests.Session()
     url_b = 'https://boardreader.com'
     req = hacer_peticion(url_b, proxy, user_agent, intervalo, sesion=s)
     if self.banned(req.text):
         if verboso:
             print('IP bloqueada')
         return -1
     dicc, url_p = url
     url_p += "&page=%d" % (iteracion + 1)
     req = hacer_peticion(url_p, proxy, user_agent, intervalo, sesion=s)
     if verboso:
         print("URL de búsqueda: %s" % req.url)
     data = json.loads(req.text)
     if not data.get('SearchResults', None):
         return 0
     results = data['SearchResults']
     total = 0
     for result in results:
         titulo = result.get('Subject',
                             '').replace('[Keyword]',
                                         '').replace('[/Keyword]', '')
         link = result.get('Url', '')
         if dicc.get('filetype', None) and \
            (not (link.endswith(dicc['filetype'])
                  or (link.endswith(dicc['filetype'].upper())))):
             continue
         if dicc.get('inurl', None) and not dicc['inurl'] in link:
             continue
         if not resultados.get(link, None):
             total += 1
             descripcion = result.get('Text',
                                      '').replace('[Keyword]', '').replace(
                                          '[/Keyword]',
                                          '').replace('\n', ' ')
             if obten_emails:
                 self.get_emails(link, titulo, descripcion, resultados)
             else:
                 resultados[link] = Resultado(link, titulo, descripcion)
     return total
Exemple #2
0
 def obten_resultados(self,
                      url,
                      resultados,
                      iteracion,
                      proxy,
                      user_agent,
                      intervalo,
                      obten_emails,
                      verboso=False):
     url_p, q = url
     data = {'q': q, 'kl': 'us-en'}
     if iteracion > 0:
         data['api'] = '/d.js'
         data['o'] = 'json'
         data['v'] = 'l'
         data['dc'] = 31 if iteracion == 1 else ((iteracion - 1) * 50) + 31
         data['s'] = 30 if iteracion == 1 else data['dc'] - 1
     req = hacer_peticion(url_p, proxy, user_agent, intervalo, True, data)
     if verboso:
         print("URL de búsqueda: %s" % req.url)
         print("Data: %s" % data)
     soup = BeautifulSoup(req.text, 'lxml')
     if self.banned(req.text):
         if verboso:
             print('ERROR DE BÚSQUEDA: IP BLOQUEADA')
         return -1
     results = soup.findAll('div', {"class": "result"})
     total = 0
     for result in results:
         r = result.find('h2', {'class': 'result__title'})
         titulo = r.text.strip() if r else ''
         a = r.find('a', {'class', 'result__a'}) if r else None
         link = a.get('href', '') if a else ''
         s = result.find('a', {'class': 'result__snippet'})
         descripcion = s.text if s else ''
         if not resultados.get(link, None) and a:
             total += 1
             if obten_emails:
                 self.get_emails(link, titulo, descripcion, resultados)
             else:
                 resultados[link] = Resultado(link, titulo, descripcion)
     return total
Exemple #3
0
 def obten_resultados(self,
                      url,
                      resultados,
                      iteracion,
                      proxy,
                      user_agent,
                      intervalo,
                      obten_emails,
                      verboso=False):
     url_p = '%s&first=%d' % (url, iteracion * 10 + 1)
     req = hacer_peticion(url_p, proxy, user_agent, intervalo)
     if verboso:
         print("URL de búsqueda: %s" % req.url)
     soup = BeautifulSoup(req.text, 'lxml')
     if self.banned(soup.text):
         if verboso:
             print('ERROR DE BÚSQUEDA: IP BLOQUEADA')
         return -1
     [s.extract() for s in soup('span')]
     for match in soup.findAll('strong'):
         match.replaceWithChildren()
     results = soup.findAll('li', {"class": "b_algo"})
     total = 0
     for result in results:
         h2 = result.find('h2')
         titulo = h2.text if h2 else ''
         a = h2.find('a') if h2 else None
         link = a.get('href', '') if a else ''
         if not resultados.get(link, None):
             total += 1
             p = result.find('p')
             descripcion = p.text if p else ''
             if obten_emails:
                 self.get_emails(link, titulo, descripcion, resultados)
             else:
                 resultados[link] = Resultado(link, titulo, descripcion)
     return total
Exemple #4
0
 def obten_resultados(self,
                      url,
                      resultados,
                      iteracion,
                      proxy,
                      user_agent,
                      intervalo,
                      obten_emails,
                      verboso=False):
     url_p = '%s&start=%d' % (url, iteracion * 10)
     req = hacer_peticion(url_p, proxy, user_agent, intervalo)
     if verboso:
         print("URL de búsqueda: %s" % req.url)
     soup = BeautifulSoup(req.text, 'lxml')
     if self.banned(req.url):
         if verboso:
             print('ERROR DE BÚSQUEDA: IP BLOQUEADA')
         return -1
     results = soup.findAll('div', {"class": "g"})
     total = 0
     for result in results:
         if result.find('img'):
             continue
         r = result.find('h3', {'class': 'r'})
         titulo = r.text if r else ''
         s = result.find('div', {'class': 's'})
         descripcion = s.find('span', {'class': 'st'}).text if s else ''
         link = r.find('a').get('href', '') if r else ''
         if link.startswith('/url?'):
             link = urljoin('https://google.com/', link)
         if not resultados.get(link, None):
             total += 1
             if obten_emails:
                 self.get_emails(link, titulo, descripcion, resultados)
             else:
                 resultados[link] = Resultado(link, titulo, descripcion)
     return total
Exemple #5
0
def myip(p, u, i):
    """
    Devuelve la IP pública con la que se está realizando el request
    """
    print("IP pública: %s" %
          hacer_peticion('http://ip.42.pl/raw', p, u, i).text)