Functional as of February 2025
This project is a Streamlit-based web application that automates the process of downloading keyword data from Yandex Wordstat, a popular keyword research tool.
The application allows users to:
✅ Upload an Excel file containing keywords
✅ Enter their Yandex login credentials
✅ Automatically fetch keyword statistics for specific regions (Moscow & Saint Petersburg)
✅ Download the results as a CSV file
This tool is particularly useful for marketers, SEO specialists, and researchers, simplifying the process of retrieving keyword trends and search volume data from Yandex Wordstat.
Yandex Wordstat provides search volume data based on user queries, helping businesses assess market demand, customer interest, and marketing trends. However, analyzing a single keyword is not enough---gathering insights across multiple keywords is crucial.
Since manually retrieving large keyword datasets is time-consuming, this project was developed to automate and streamline the process, especially when handling large keyword lists.
🔹 Excel File Upload -- Upload an Excel file with keywords categorized into specific sheets (MSK for Moscow and SPB for Saint Petersburg).
🔹 Automated Keyword Retrieval -- Uses Selenium to log into Yandex Wordstat, select regions, and fetch keyword statistics.
🔹 Dynamic Region Selection -- Supports Moscow & Saint Petersburg, including their respective surrounding regions.
🔹 Real-Time Logging -- Displays the last 10 log messages in a scrollable interface for live status updates.
🔹 Downloadable Results -- Saves the fetched keyword data as a CSV file for easy access.
🔹 Local & Cloud Deployment -- Designed to work locally or on Streamlit Cloud, but due to Yandex's security measures, local use is recommended.
- The Excel file must contain two sheets:
- MSK → Keywords for Moscow & its region
- SPB → Keywords for Saint Petersburg & its region
- Each sheet should have keywords listed in the first column (no headers required).
- Provide your Yandex username & password to access Wordstat.
- If additional login verification (e.g., CAPTCHA, push codes) is required, you can manually enter them in the automated Chrome window controlled by Selenium.
- Select whether the app is running locally or on Streamlit Cloud.
- If using Streamlit Cloud, be aware of potential issues:
- Yandex may require manual verification (CAPTCHA, push codes).
- No manual control over unexpected UI changes.
- The script will log into Yandex Wordstat, select the specified regions, and fetch keyword search volume data.
- The data is extracted directly from the page source to minimize web scraping risks.
- Once the process is complete, download the keyword data as a CSV file.
📂 script.py -- Core logic for Selenium automation
- Browser Setup -- Configures Chrome for local or cloud deployment
- Login Handling -- Automates login to Yandex Wordstat
- Keyword Processing -- Fetches data for selected regions
- Timer & Banner Handling -- Manages UI pop-ups & delays
📂 app.py -- Streamlit-based UI
- File Upload -- Handles Excel file input
- Real-Time Logging -- Displays script progress
- Download Button -- Provides the CSV download option
Run the following commands one after another in your terminal/shell/command line:
git clone https://github.com/Erzinrost/Yandex-Wordstat.git
cd Yandex-Wordstat
pip install -r requirements.txt
python -m streamlit run app.py
1️⃣ Open terminal and run the commands above.
2️⃣ Upload an Excel file containing keywords in MSK & SPB sheets.
3️⃣ Enter your Yandex login credentials.
4️⃣ Select whether the app is running locally or on Streamlit Cloud.
5️⃣ Click "Start Processing" to begin fetching keyword data.
6️⃣ Once completed, download the results as a CSV file.
📌 Python 3.8+
📌 Selenium
📌 Streamlit
📌 Pandas
📌 Openpyxl (for Excel file processing)
📌 Webdriver Manager (for ChromeDriver management)
1️⃣ Yandex UI Changes
- The script relies on XPath locators, which may change over time.
- However, alternative locators are included in the code, making updates straightforward.
2️⃣ Frequent Logins & Security Checks
- Logging into Yandex too frequently may trigger CAPTCHA or push-code verification.
- Local execution is recommended, as manual input is possible if needed.
This project is not actively maintained but is updated as needed.
Feel free to open an issue or submit a pull request for improvements or bug fixes.
- Cloud deployment is not fully reliable due to Yandex's security measures and lack of manual control.
- Local execution is thus recommended with opened Chrone window automated by Selenium for better control & stability.