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
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
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
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
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)