Как получить конечные точки источников электронной почты для результирующих писем в django rest framework

Я создал инструмент для проверки электронной почты, поиска и поиска домена в django rest framework. Я использовал Isitarealemail api's для интеграции для проверки и поиска электронной почты. но для поиска домена я использовал библиотеку email finder (emailfinder==0.3.0b0), она использовалась для поиска доменов с помощью поиска google. она также успешно возвращает электронную почту, присутствующую в доменах, но мне также нужна исходная конечная точка (url ссылки на электронную почту, откуда она найдена). как ее получить. я разместил код ниже

Это мой файл views.py

class email_from_google(APIView):
   def get(self, request):
      raw_domain = request.query_params.get('domain_name')
      if raw_domain is not None and raw_domain != '':
          if raw_domain[-1] == '/':
            raw_domain = raw_domain.replace('/', '')
            pattern = re.findall('https|http|www', raw_domain)
            if raw_domain is not None and pattern == []:
                try:
                    search_query = Google_email_model.objects.get(domain=raw_domain)
                    return Response(search_query.emails)
                except:
                    scraped_email = get_emails_from_google(str(raw_domain))
                    scraped_email_count = len(scraped_email)
                    if scraped_email_count != 0:
                        google_emails = dict(emails=scraped_email,email_count=scraped_email_count)
                        query_data = 
                        Google_email_model.objects.create(domain=raw_domain,emails=google_emails)
                        query_data.save()
                        return Response(google_emails,links, status=status.HTTP_200_OK)
                    no_email = dict(emails=[], email_count=[])
                    return Response(no_email)
            error = dict(error='valid domain required')
            return Response(error)
        error = dict(error='valid domain required')
        return Response(error)

Это мой emailfinder домен google.py файлenter image description here

def search(target, proxies=None, total=200):
    emails = set()
    start = 0
    num = 50 if total > 50 else total
    iterations = int(total/num)
    if (total%num) != 0:
        iterations += 1
    url_base = f"https://www.google.com/search?q=intext:@{target}&num={num}"
    cookies = {"CONSENT": "YES+srp.gws"}
    
    while start < iterations:
        try:
            url = url_base + f"&start={start}"
            response = requests.get(url,
                headers=user_agent.get(randint(0, len(user_agent)-1)),
                allow_redirects=False,
                cookies=cookies,
                verify=False,
                proxies=proxies
            )
            text = response.text
            if response.status_code == 302 and ("htps://www.google.com/webhp" in text or "https://consent.google.com" in text):
                raise GoogleCookiePolicies()
            elif "detected unusual traffic" in text:
                raise GoogleCaptcha()
            emails = emails.union(get_emails(target, text))     
            soup = BeautifulSoup(text, "html.parser")
            # h3 is the title of every result
            if len(soup.find_all("h3")) < num:
                break
        except Exception as ex:
            raise ex #It's left over... but it stays there
        start += 1
    emails = list(emails)
    if len(emails) > 0:
        print_ok("Google discovered {} emails".format(len(list(emails))))
    else:
        print_info("Google did not discover any email IDs")
    return (emails)

Как этого достичьenter image description here

Вернуться на верх