{"id":25253231,"url":"https://github.com/erzinrost/yandex-wordstat","last_synced_at":"2026-05-06T15:45:03.278Z","repository":{"id":276173491,"uuid":"927972238","full_name":"Erzinrost/Yandex-Wordstat","owner":"Erzinrost","description":"Application which automates keywords download on Yandex Wordstat with Streamlit interface","archived":false,"fork":false,"pushed_at":"2025-02-18T18:46:17.000Z","size":143,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T22:29:31.234Z","etag":null,"topics":["automation","parsing","selenium","streamlit","wordstat","yandex"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erzinrost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-05T21:01:29.000Z","updated_at":"2025-02-18T18:46:20.000Z","dependencies_parsed_at":"2025-02-06T18:26:32.108Z","dependency_job_id":"c15b639a-0406-4c6b-a510-33f59ef516e8","html_url":"https://github.com/Erzinrost/Yandex-Wordstat","commit_stats":null,"previous_names":["erzinrost/yandex-wordstat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erzinrost%2FYandex-Wordstat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erzinrost%2FYandex-Wordstat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erzinrost%2FYandex-Wordstat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erzinrost%2FYandex-Wordstat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erzinrost","download_url":"https://codeload.github.com/Erzinrost/Yandex-Wordstat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411240,"owners_count":20934650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","parsing","selenium","streamlit","wordstat","yandex"],"created_at":"2025-02-12T04:58:43.954Z","updated_at":"2026-05-06T15:45:03.229Z","avatar_url":"https://github.com/Erzinrost.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Yandex Wordstat Automated Keyword Data Downloader**\n=====================================================\n\n***Functional as of February 2025***\n\nThis project is a **Streamlit-based web application** that automates the process of downloading keyword data from [**Yandex Wordstat**](https://wordstat.yandex.ru/), a popular keyword research tool.\n\nThe application allows users to:\\\n✅ Upload an **Excel file** containing keywords\\\n✅ Enter their **Yandex login credentials**\\\n✅ **Automatically fetch** keyword statistics for specific regions (**Moscow \u0026 Saint Petersburg**)\\\n✅ **Download the results** as a CSV file\n\nThis tool is particularly useful for **marketers, SEO specialists, and researchers**, simplifying the process of retrieving **keyword trends and search volume data** from Yandex Wordstat.\n\n### 📌 **Why Use This Tool?**\n\nYandex 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.\n\nSince manually retrieving large keyword datasets is **time-consuming**, this project was developed to **automate and streamline** the process, especially when handling **large keyword lists**.\n\n* * * * *\n\n🚀 **Features**\n---------------\n\n🔹 **Excel File Upload** -- Upload an Excel file with keywords categorized into specific sheets (`MSK` for Moscow and `SPB` for Saint Petersburg).\\\n🔹 **Automated Keyword Retrieval** -- Uses **Selenium** to log into Yandex Wordstat, select regions, and fetch keyword statistics.\\\n🔹 **Dynamic Region Selection** -- Supports Moscow \u0026 Saint Petersburg, including their **respective surrounding regions**.\\\n🔹 **Real-Time Logging** -- Displays the **last 10 log messages** in a scrollable interface for **live status updates**.\\\n🔹 **Downloadable Results** -- Saves the fetched keyword data as a **CSV file** for easy access.\\\n🔹 **Local \u0026 Cloud Deployment** -- Designed to work **locally** or on **Streamlit Cloud**, but due to Yandex's security measures, local use is recommended.\n\n* * * * *\n\n🛠 **How It Works**\n-------------------\n\n### **1️⃣ Upload an Excel File**\n\n-   The Excel file must contain **two sheets**:\n    -   **MSK** → Keywords for **Moscow \u0026 its region**\n    -   **SPB** → Keywords for **Saint Petersburg \u0026 its region**\n-   Each sheet should have **keywords listed in the first column** (no headers required).\n\n### **2️⃣ Enter Yandex Login Credentials**\n\n-   Provide your **Yandex username \u0026 password** to access Wordstat.\n-   If additional login verification (e.g., CAPTCHA, push codes) is required, you can **manually enter** them in the automated **Chrome window** controlled by Selenium.\n\n### **3️⃣ Choose Deployment Environment**\n\n-   Select whether the app is running **locally** or on **Streamlit Cloud**.\n-   If using **Streamlit Cloud**, be aware of potential issues:\n    -   Yandex may require **manual verification** (CAPTCHA, push codes).\n    -   No manual control over **unexpected UI changes**.\n\n### **4️⃣ Run the Processing**\n\n-   The script will **log into Yandex Wordstat**, select the specified regions, and fetch **keyword search volume data**.\n-   The data is extracted **directly from the page source** to **minimize web scraping risks**.\n\n### **5️⃣ Download the Results**\n\n-   Once the process is complete, **download** the keyword data as a **CSV file**.\n\n* * * * *\n\n🏗 **Code Structure**\n---------------------\n\n📂 **`script.py`** -- Core logic for Selenium automation\n\n-   **Browser Setup** -- Configures Chrome for **local or cloud deployment**\n-   **Login Handling** -- Automates login to Yandex Wordstat\n-   **Keyword Processing** -- Fetches data for selected regions\n-   **Timer \u0026 Banner Handling** -- Manages UI pop-ups \u0026 delays\n\n📂 **`app.py`** -- Streamlit-based UI\n\n-   **File Upload** -- Handles Excel file input\n-   **Real-Time Logging** -- Displays script progress\n-   **Download Button** -- Provides the CSV download option\n\n* * * * *\n\n📌 **Installation**\n-------------------\n\nRun the following commands one after another in your terminal/shell/command line:\n\n### **1️⃣ Clone the Repository and Set Directory**\n```\ngit clone https://github.com/Erzinrost/Yandex-Wordstat.git\n```\n```\ncd Yandex-Wordstat\n```\n### **2️⃣ Install Dependencies**\n```\npip install -r requirements.txt\n```\n### **3️⃣ Run the Streamlit App**\n```\npython -m streamlit run app.py \n```\n* * * * *\n\n📖 **Usage Instructions**\n-------------------------\n\n1️⃣ Open **terminal** and run the commands above.\\\n2️⃣ Upload an **Excel file** containing keywords in **MSK \u0026 SPB sheets**.\\\n3️⃣ Enter your **Yandex login credentials**.\\\n4️⃣ Select whether the app is running **locally or on Streamlit Cloud**.\\\n5️⃣ Click **\"Start Processing\"** to begin fetching keyword data.\\\n6️⃣ Once completed, **download the results** as a **CSV file**.\n\n* * * * *\n\n🔧 **Requirements**\n-------------------\n\n📌 Python **3.8+**\\\n📌 **Selenium**\\\n📌 **Streamlit**\\\n📌 **Pandas**\\\n📌 **Openpyxl** (for Excel file processing)\\\n📌 **Webdriver Manager** (for ChromeDriver management)\n\n* * * * *\n\n⚠️ **Potential Issues \u0026 Vulnerabilities**\n-----------------------------------------\n\n1️⃣ **Yandex UI Changes**\n\n-   The script relies on **XPath locators**, which may **change over time**.\n-   However, alternative locators are included in the code, making updates **straightforward**.\n\n2️⃣ **Frequent Logins \u0026 Security Checks**\n\n-   Logging into Yandex **too frequently** may trigger **CAPTCHA or push-code verification**.\n-   **Local execution is recommended**, as **manual input** is possible if needed.\n\n* * * * *\n\n🤝 **Contributing**\n-------------------\n\nThis project is **not actively maintained** but is updated **as needed**.\\\nFeel free to **open an issue** or **submit a pull request** for improvements or bug fixes.\n\n* * * * *\n\n📌 **Notes:**\n-------------------\n\n-   **Cloud deployment is not fully reliable** due to Yandex's security measures and lack of manual control.\n-   **Local execution is thus recommended** with opened Chrone window automated by Selenium for **better control \u0026 stability**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferzinrost%2Fyandex-wordstat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferzinrost%2Fyandex-wordstat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferzinrost%2Fyandex-wordstat/lists"}