• XSS.stack #1 – первый литературный журнал от юзеров форума

Как собрать все найденные URLs по заданному поисковому запросу?

deathaftersex

CD-диск
Пользователь
Регистрация
20.01.2025
Сообщения
14
Реакции
2
Привет, XSS!

Совсем новичок в этой сфере, до последнего не хотел писать тему - думал разберусь сам.

Возникла потребность в создании таргетированной базы e-mail / phone number под рассылку, я пошел искать информацию на просторах форумов и GitHub'e - нашел все что нужно, кроме рабочего парсера / паука / скрапера / поисковика (с терминами я не разобрался) сайтов по заданным мною ключевым словам / поисковым запросам.
Остановился на скриптах для поиска дорков, по паре сотен URLs вытаскивать получалось - но сводилось это к вечным фродам, пытался прикрутить динамическую ротацию прокси / юзер-агентов, но ничего хорошего не вышло.

Хочу узнать, есть ли уже какие-то готовые скрипты на подобии a-parsera, которые работают "из коробки" - просто вставляешь список запросов, а на выходе получаешь базу из нескольких тысяч уникальных URLов?

Спасибо! 😙
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Добрый день
Самый простой вариант это скрипт на питоне по парсингу через https://xmlriver.com/
Любая нейронка на питоне напишет рабочий код. Если не разберетесь, пишите, помогу
 
To be clear, you're wanting to use SERP to collect all result matches from your personal dorks, and use these to recursively look for strings matching your regex?
 
To be clear, you're wanting to use SERP to collect all result matches from your personal dorks, and use these to recursively look for strings matching your regex?
If I understood you correctly, then my answer is yes.

Let me give an example: I take one search query, generate 100 similar queries using ChatGPT, and save them in a text file. I need a script that will collect all unique URLs found for these queries into a single file so that I can later extract these URLs to build my own database of emails and phone numbers.


I found something like this in A-Parser, but it's quite an expensive purchase considering I only need a couple of functions.

Maybe there are some ready-made budget-friendly or free solutions for this?
I’m starting to doubt that I’m looking in the right place :(—after spending a couple of days researching forums and GitHub, I haven’t found anything that actually works.
 
Идешь на duck.ai
Представляешь себя Тони Старком, дающим команды Д.Ж.А.Р.В.И.Су, пишешь:


Код:
Напиши скрипт на питоне, который:
1. Переходит по ссылкам, которые он берет из файла url.txt
2. Ищет на главноей странице сайта адреса электронных почт и записывает в файл good.txt. 
4. Файл good.txt сохраняется после каждой найденной строки.
5. Выводит на экран режим работы в цвете.
6. В конце работы скрипта выводится статистика.
7. Многопоточный режим.

Он тебе выдаст код и инструкцию.
Python:
import requests
from bs4 import BeautifulSoup
import re
import concurrent.futures
import os

# Функция для поиска email на странице
def find_emails(url):
    try:
        response = requests.get(url)
        response.raise_for_status()  # Проверка на ошибки HTTP
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # Регулярное выражение для поиска email
        email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
        emails = set(re.findall(email_pattern, soup.get_text()))
        
        if emails:
            with open('good.txt', 'a') as f:
                for email in emails:
                    f.write(email + '\n')
            print(f"\033[92mНайдено email на {url}: {', '.join(emails)}\033[0m")  # Зеленый цвет
        else:
            print(f"\033[93mEmail не найден на {url}\033[0m")  # Желтый цвет
    except Exception as e:
        print(f"\033[91mОшибка при обработке {url}: {e}\033[0m")  # Красный цвет

# Основная функция
def main():
    if not os.path.exists('url.txt'):
        print("\033[91mФайл url.txt не найден!\033[0m")
        return

    with open('url.txt', 'r') as f:
        urls = [line.strip() for line in f if line.strip()]

    total_urls = len(urls)
    processed_urls = 0

    with concurrent.futures.ThreadPoolExecutor() as executor:
        futures = {executor.submit(find_emails, url): url for url in urls}
        for future in concurrent.futures.as_completed(futures):
            processed_urls += 1
            url = futures[future]
            try:
                future.result()
            except Exception as e:
                print(f"\033[91mОшибка при обработке {url}: {e}\033[0m")

    print(f"\n\033[94mОбработка завершена. Обработано {processed_urls} из {total_urls} URL.\033[0m")  # Синий цвет

if __name__ == "__main__":
    main()

Пример url.txt

Код:
https://amazon.com.br
https://mercadolivre.com.br
https://claro.com.br
https://netshoes.com.br
https://dafiti.com.br
https://madeiramadeira.com.br
https://drogaraia.com.br
https://elo7.com.br
https://drogasil.com.br
https://lojasrenner.com.br
https://zattini.com.br
https://petz.com.br
https://paguemenos.com.br
https://cea.com.br
https://lojadomecanico.com.br
https://petlove.com.br
https://weg.net
https://hostinger.com.br
https://br.shein.com
https://kalunga.com.br
https://mobly.com.br
https://grancursosonline.com.br
https://cielo.com.br
https://martinsatacado.com.br
https://yampi.com.br
https://farmrio.com.br
https://usereserva.com
https://multilaser.com.br
https://shopfacil.com.br
https://alfaconcursos.com.br
https://epson.com.br
https://sorteonline.com.br
https://ricardoeletro.com.br
https://colcci.com.br
https://jardimexotico.com.br
https://roge.com.br
https://lebes.com.br
https://eurodicas.com.br
https://smarthint.co
https://ironstudios.com


That's it
 
Идешь на duck.ai
Представляешь себя Тони Старком, дающим команды Д.Ж.А.Р.В.И.Су, пишешь:


Код:
Напиши скрипт на питоне, который:
1. Переходит по ссылкам, которые он берет из файла url.txt
2. Ищет на главноей странице сайта адреса электронных почт и записывает в файл good.txt.
4. Файл good.txt сохраняется после каждой найденной строки.
5. Выводит на экран режим работы в цвете.
6. В конце работы скрипта выводится статистика.
7. Многопоточный режим.

Он тебе выдаст код и инструкцию.
Python:
import requests
from bs4 import BeautifulSoup
import re
import concurrent.futures
import os

# Функция для поиска email на странице
def find_emails(url):
    try:
        response = requests.get(url)
        response.raise_for_status()  # Проверка на ошибки HTTP
        soup = BeautifulSoup(response.text, 'html.parser')
      
        # Регулярное выражение для поиска email
        email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
        emails = set(re.findall(email_pattern, soup.get_text()))
      
        if emails:
            with open('good.txt', 'a') as f:
                for email in emails:
                    f.write(email + '\n')
            print(f"\033[92mНайдено email на {url}: {', '.join(emails)}\033[0m")  # Зеленый цвет
        else:
            print(f"\033[93mEmail не найден на {url}\033[0m")  # Желтый цвет
    except Exception as e:
        print(f"\033[91mОшибка при обработке {url}: {e}\033[0m")  # Красный цвет

# Основная функция
def main():
    if not os.path.exists('url.txt'):
        print("\033[91mФайл url.txt не найден!\033[0m")
        return

    with open('url.txt', 'r') as f:
        urls = [line.strip() for line in f if line.strip()]

    total_urls = len(urls)
    processed_urls = 0

    with concurrent.futures.ThreadPoolExecutor() as executor:
        futures = {executor.submit(find_emails, url): url for url in urls}
        for future in concurrent.futures.as_completed(futures):
            processed_urls += 1
            url = futures[future]
            try:
                future.result()
            except Exception as e:
                print(f"\033[91mОшибка при обработке {url}: {e}\033[0m")

    print(f"\n\033[94mОбработка завершена. Обработано {processed_urls} из {total_urls} URL.\033[0m")  # Синий цвет

if __name__ == "__main__":
    main()

Пример url.txt

Код:
https://amazon.com.br
https://mercadolivre.com.br
https://claro.com.br
https://netshoes.com.br
https://dafiti.com.br
https://madeiramadeira.com.br
https://drogaraia.com.br
https://elo7.com.br
https://drogasil.com.br
https://lojasrenner.com.br
https://zattini.com.br
https://petz.com.br
https://paguemenos.com.br
https://cea.com.br
https://lojadomecanico.com.br
https://petlove.com.br
https://weg.net
https://hostinger.com.br
https://br.shein.com
https://kalunga.com.br
https://mobly.com.br
https://grancursosonline.com.br
https://cielo.com.br
https://martinsatacado.com.br
https://yampi.com.br
https://farmrio.com.br
https://usereserva.com
https://multilaser.com.br
https://shopfacil.com.br
https://alfaconcursos.com.br
https://epson.com.br
https://sorteonline.com.br
https://ricardoeletro.com.br
https://colcci.com.br
https://jardimexotico.com.br
https://roge.com.br
https://lebes.com.br
https://eurodicas.com.br
https://smarthint.co
https://ironstudios.com


That's it
У меня основная проблема с поиском этих самых URLs
Два решения, которые я нашел на данный момент - это SerpAPI - который бесплатно парсит лишь около 600 уник. сайтов, либо же A-Parser, функционал которого по большей части мне не пригодится)
Может есть какие-то обходы SerpAPI на анлимит триал, ибо 600 уников это ни о чем, что с них вытаскивать 😆

У SerpAPI просто конский ценник за поисковые запросы, у A-Parser софт достаточно хороший, но 90% функционала просто не нужны)
 
Простых путей не бывает 😭
По-крайней мере мне на постоянку новые базы нужны
Ну раз не бывает тогда как ~ вариант на началах скань на веб порты необходимые тебе страны, обратно резолвь домены, оставляй только домены второго уровня, затем отчекивай на наличие кейвордов, а граббер тебе уже написали выше или как то так wget'ом
 
Последнее редактирование:
Ну раз не бывает тогда как ~ вариант на началах скань на веб порты необходимые тебе страны, обратно резолвь домены, оставляй только домены второго уровня, затем отчекивай на наличие кейвордов, а граббер тебе уже написали выше или как то так wget'ом
Спасибо, попробую 👀
 
https://xss.pro/threads/93056/
 
Cool let me know
 
Cool let me know
Chrome just opens, 3 captchas appear, and after passing them, I get two pages with about 50 URLs on each – is that how it should be? After that, nothing happens (

SerpAPI is exactly what I need. Yesterday, I scraped about 1000 links using the free trial, but damn, that's really not enough, and their prices per request are just skyrocketing.
 
Chrome just opens, 3 captchas appear, and after passing them, I get two pages with about 50 URLs on each – is that how it should be? After that, nothing happens (

SerpAPI is exactly what I need. Yesterday, I scraped about 1000 links using the free trial, but damn, that's really not enough, and their prices per request are just skyrocketing.
No that's not what should happen. It must be making detection from one or both of the requests or IP.
 
Привет, XSS!

Совсем новичок в этой сфере, до последнего не хотел писать тему - думал разберусь сам.

Возникла потребность в создании таргетированной базы e-mail / phone number под рассылку, я пошел искать информацию на просторах форумов и GitHub'e - нашел все что нужно, кроме рабочего парсера / паука / скрапера / поисковика (с терминами я не разобрался) сайтов по заданным мною ключевым словам / поисковым запросам.
Остановился на скриптах для поиска дорков, по паре сотен URLs вытаскивать получалось - но сводилось это к вечным фродам, пытался прикрутить динамическую ротацию прокси / юзер-агентов, но ничего хорошего не вышло.

Хочу узнать, есть ли уже какие-то готовые скрипты на подобии a-parsera, которые работают "из коробки" - просто вставляешь список запросов, а на выходе получаешь базу из нескольких тысяч уникальных URLов?

Спасибо! 😙
https://github.com/hack-r/MMEES сканирует результаты поиска из нескольких поисковых систем (Google, Bing и другие) для извлечения email-адресов, телефонных номеров и именованных сущностей
 
Chrome just opens, 3 captchas appear, and after passing them, I get two pages with about 50 URLs on each – is that how it should be? After that, nothing happens (

SerpAPI is exactly what I need. Yesterday, I scraped about 1000 links using the free trial, but damn, that's really not enough, and their prices per request are just skyrocketing.
Alternatively, you can use something like https://chromewebstore.google.com/detail/link-extractor-v2/eceefkmplmnpfkfiadjljlmjjbdknnpn to collect domains to clipboard
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх