Пишем скрипт на python.Есть один сайт, там в одного ip можно проверить 100 ключевых слов в день, без регистрации, в одном запросе макс может быть 50 слов.
На сайте есть капча.https://serphunt.ru/frequency/Регион не ставим, галочку оставляем только на
Базовая.
Суть вроде очень простая, я тут чет сам пробовал через gpt, но знаний мало, ниже покажу пример.
Суть простая, есть файл там будут в строку ключевые слова на проверку, лежать будет там где и сам скрипт slova.txt.
Запускаем скрипт, он заходит на сайт serphunt.ru/frequency/, надо чтобы еще весь ход выводился, чтоб понятно было что происходит в данный момент, заходим на сайт, там есть поле где вводим ключевые слова, макс делаем, чтоб можно было 50 ввести, если ключевых слов много в текстовом файле, то делим на группы для проверки, в моем примере это уже есть, если ключевых слов меньше, то он будет проверять сколько есть, главное за раз не больше 50, ну и не забываем оставить галочку только на Базовая, нажали проверить, ниже появляется результат и парсим его, первое поле и второе, записываем в текстовый и сохраняем provereno.txt
----------------------------
Все тож самое, только описано чуть подробнее.----------------------------
Пишем скрипт на python, со
статистикой, чтобы в коде было видно,
что происходит, зашел ли он на сайт,
заходим на сайт
https://serphunt.ru/frequency/,
находим <textarea name="keywordlist"
required="required" class="h300"></textarea>,
добавляем в textarea 50 слов в строку из
файла slova.txt, и нажимаем
кнопку <li class="service-button"><span
id="handler-button"><input type="submit"
class="btn btn-blue button-primary"
value="Проверить"></span></li>,
через какое-то время, ниже появляется
статистика ключевых слов в <table
class="table-zebra w100p">, собираем первый
столбик и второй, первый
<tbody><tr><td>neelakantha</td><td
class="semibold txt-center">0</td>, берем
слово и цифры, и записываем все эти
результаты слов в текстовый файл,
называем его provereno.txt
----------------------------
Все очень просто.
Я думаю даж без селениума можно будет сделать.
Там ведь пост запрос, умельцы думаю смогут отправлять на прямую пост запрос с данными, не пихая слова в
textarea.
Жду ваших предложений по цене и по решению данной задачи.
Как бы вы реализовали.
Апи сайта не используем, там нет бесплатных этих 100 проверок.
--------------------
То что я пробовал через gpt
--------------------
import requests
from bs4
import BeautifulSoup
import time
# Функция для чтения слов из файлаdef read_words(filename):
with open(filename, 'r', encoding='utf-8')
as file:
return [line.strip()
for line
in file]
# Функция для записи результатов в файлdef write_results(filename, results):
with open(filename, 'w', encoding='utf-8')
as file:
for word, frequency
in results:
file.write(f"
{word
}:
{frequency
}\n")
# Основная функцияdef check_word_frequency():
print("Начинаем проверку частотности слов")
# Читаем слова из файла words = read_words('slova.txt')
print(f"Прочитано
{len(words)
} слов из файла slova.txt")
# Разбиваем слова на группы по 50 word_groups = [words[i:i+
50]
for i
in range(
0, len(words),
50)]
results = []
for group
in word_groups:
print(f"Обрабатываем группу из
{len(group)
} слов")
# Подготавливаем данные для отправки data = {
'keywordlist': '
\n'.join(group),
'source': 'yandex',
'region': '0'
}
# Отправляем POST запросprint("Отправляем запрос на сервер...")
response = requests.post('https://serphunt.ru/frequency/', data=data)
print(f"Получен ответ от сервера. Статус:
{response.status_code
}")
# Проверяем успешность запросаif response.status_code ==
200:
print("Успешно получены данные. Начинаем парсинг...")
time.sleep(
30)
# Парсим HTML soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='table-zebra')
if table:
# Извлекаем данные из таблицыfor row
in table.find_all('tr'):
cols = row.find_all('td')
if len(cols) >=
2:
word = cols[
0].text.strip()
frequency = cols[
1].text.strip()
results.append((word, frequency))
print(f"Обработано слово:
{word
}, частотность:
{frequency
}")
else:
print("Таблица с результатами не найдена на странице")
else:
print(f"Ошибка при получении данных:
{response.status_code
}")
# Добавляем задержку перед следующим запросом time.sleep(
10)
# Записываем результаты в файл write_results('provereno.txt', results)
print(f"Результаты записаны в файл provereno.txt. Всего обработано
{len(results)
} слов.")
# Запускаем основную функциюif __name__ == "__main__":
check_word_frequency()