{"id":30853435,"url":"https://github.com/hypertextassassin0273/google-custom-search","last_synced_at":"2026-05-06T22:03:58.013Z","repository":{"id":280508043,"uuid":"942178383","full_name":"HypertextAssassin0273/google-custom-search","owner":"HypertextAssassin0273","description":"A powerful tool to search and preview bulk websites with custom configurations.","archived":false,"fork":false,"pushed_at":"2026-02-28T09:43:02.000Z","size":168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-28T18:58:46.351Z","etag":null,"topics":["custom-search-engine","google-cse","json-api"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/HypertextAssassin0273.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-03T17:43:17.000Z","updated_at":"2026-02-28T09:40:39.000Z","dependencies_parsed_at":"2025-03-23T00:35:26.913Z","dependency_job_id":"178d43f2-460b-4cb5-8ec0-f9f063fe7720","html_url":"https://github.com/HypertextAssassin0273/google-custom-search","commit_stats":null,"previous_names":["hypertextassassin0273/google_custom_search","hypertextassassin0273/google-custom-search"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/HypertextAssassin0273/google-custom-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HypertextAssassin0273%2Fgoogle-custom-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HypertextAssassin0273%2Fgoogle-custom-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HypertextAssassin0273%2Fgoogle-custom-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HypertextAssassin0273%2Fgoogle-custom-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HypertextAssassin0273","download_url":"https://codeload.github.com/HypertextAssassin0273/google-custom-search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HypertextAssassin0273%2Fgoogle-custom-search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32713820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["custom-search-engine","google-cse","json-api"],"created_at":"2025-09-07T09:10:11.125Z","updated_at":"2026-05-06T22:03:57.799Z","avatar_url":"https://github.com/HypertextAssassin0273.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google Custom Search\n\nThis is a simple web application that uses the **Google Custom Search API** to search for items on mentioned websites in **selected custom search engine**. \n\nThe results are **grouped** by their corresponding website domain, making it easier for the user to identify the source of the similar search results.\n\nSince the results are **preloaded** (requires proxy support), the user can very quickly preview search results in different pane on the same page, providing a smooth experience. \n\n## How to run the application?\n\n### 1. Install dependencies\nInstall **python packages** by running the following command:\n```bash\npip install -r requirements.txt\n```\n**Note:** make sure to have the latest pip version using `pip install --upgrade pip`.\n\n### 2. Set the environment variables\nCreate `search_engines.env` file in the `data/` directory and set as many **search engines** as you want:\n```bash\nSEARCH_ENGINE_ID_1='\u003cyour_cse_id_1\u003e'\nSEARCH_ENGINE_ID_2='\u003cyour_cse_id_2\u003e'\n...\nSEARCH_ENGINE_ID_N='\u003cyour_cse_id_N\u003e'\n```\n\nSimilarly, create `api_keys.env` file in the `data/` directory and set as many **API keys** as you want:\n\n```bash\nAPI_KEY_1='\u003cyour_cs_json_api_key_1\u003e'\nAPI_KEY_2='\u003cyour_cs_json_api_key_2\u003e'\n...\nAPI_KEY_N='\u003cyour_cs_json_api_key_N\u003e'\n```\n\n**Note:** there is no restriction on naming the environment variables. you can also add spaces in their names, e.g. `'My API Key'='\u003ccs_json_api_key\u003e'`, `'My Search Engine'='\u003ccse_id\u003e'`, etc. the only restriction is that the names should be unique.\n\n#### 2.1. Setup the credentials\nCreate a `credentials.env` file in the `data/` directory and set the following variables:\n\n```bash\nFLASK_SECRET_KEY='\u003cyour_flask_secret_key\u003e'\nadmin='\u003cyour_admin_password\u003e'\nemployee1='\u003cyour_employee1_password\u003e'\n...\nemployeeN='\u003cyour_employeeN_password\u003e'\n```\n\n**Note:** generate a secure random string for `FLASK_SECRET_KEY` using `python -c \"import secrets; print(secrets.token_hex(32))\"`. This will be used to secure the session cookies and other sensitive data in the application.\n\n### 3. Run the script to start the server\n```bash\npython app.py\n```\n**Note:** developed on python `3.13.1` version\n\n### 4. Open the browser and go to the following URL\n```bash\nhttp://127.0.0.1:5000\n```\n**Note**: default port is `5000`\n\n## Prerequisites\n\nYou need to have atleast one of both **Custom Search JSON API Key** and a **Custom Search Engine ID** to run this application. You can get them from [Google Custom Search](https://developers.google.com/custom-search/v1/overview).\n\n\n## Additional Features \n\n### 1. Website Previewer Tab\nThis application also provides a **website previewer** tab, which allows you to quickly preview the websites imported from an excel file.\n\nYou can add websites under different categories in the `websites.xlsx` file. The application will automatically load the websites from the excel file and display them accordingly in the previewer tab.\n\n**Note:** make sure to upload `websites.xlsx` file and ensure that the websites are in the correct format and accessible. otherwise, it will not work correctly.\n\n### 2. Proxy Support (requests user-agent)\nIf you want to optimize **page-search** results of a specific website, you can add that website's **domain** name in `proxied_websites.txt` file. The application will automatically fetch and cache the proxied content for all the pages of that website.\n\nYou can use this feature to fetch some annoying websites faster, cache their content, prevent them from being blocked (by CORS, strict CSP, etc.), and view their content super efficiently.\n\n**Note:** this feature works for both **website previewer** and **search results** tabs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypertextassassin0273%2Fgoogle-custom-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypertextassassin0273%2Fgoogle-custom-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypertextassassin0273%2Fgoogle-custom-search/lists"}