{"id":18737950,"url":"https://github.com/rocketlaunchr/google-search","last_synced_at":"2025-10-23T17:38:22.441Z","repository":{"id":38980104,"uuid":"246454156","full_name":"rocketlaunchr/google-search","owner":"rocketlaunchr","description":"scrape google search results","archived":false,"fork":false,"pushed_at":"2024-01-11T08:44:49.000Z","size":84,"stargazers_count":175,"open_issues_count":5,"forks_count":33,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-05T06:55:33.887Z","etag":null,"topics":["api","go","golang","google","scrape","search"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rocketlaunchr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-03-11T02:18:04.000Z","updated_at":"2025-03-18T12:54:25.000Z","dependencies_parsed_at":"2024-06-18T13:59:54.830Z","dependency_job_id":"f7190fcb-93d7-4d34-93ee-fc9293e7cb22","html_url":"https://github.com/rocketlaunchr/google-search","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rocketlaunchr%2Fgoogle-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rocketlaunchr%2Fgoogle-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rocketlaunchr%2Fgoogle-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rocketlaunchr%2Fgoogle-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rocketlaunchr","download_url":"https://codeload.github.com/rocketlaunchr/google-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247441053,"owners_count":20939239,"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":["api","go","golang","google","scrape","search"],"created_at":"2024-11-07T15:27:33.329Z","updated_at":"2025-10-23T17:38:22.359Z","avatar_url":"https://github.com/rocketlaunchr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"right\"\u003e\n  ⭐ \u0026nbsp;\u0026nbsp;\u003cstrong\u003ethe project to show your appreciation.\u003c/strong\u003e :arrow_upper_right:\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e\n  \u003ca href=\"http://godoc.org/github.com/rocketlaunchr/google-search\"\u003e\u003cimg src=\"http://godoc.org/github.com/rocketlaunchr/google-search?status.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/rocketlaunchr/google-search\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/rocketlaunchr/google-search\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rocketlaunchr/google-search/actions\"\u003e\u003cimg src=\"https://github.com/rocketlaunchr/google-search/actions/workflows/audit.yml/badge.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/rocketlaunchr/google-search/raw/master/screenshot.png\" alt=\"google home page\" /\u003e\n\u003c/p\u003e\n\nQuickly scrape Google Search Results.\n\n## Example\n\n```go\nimport \"fmt\"\nimport \"github.com/rocketlaunchr/google-search\"\n\nfunc main() {\n\tfmt.Println(googlesearch.Search(nil, \"cars for sale in Toronto, Canada\"))\n}\n```\n\n## Results:\n\n```go\n([]googlesearch.Result) (len=11 cap=16) {\n (googlesearch.Result) {\n  Rank: (int) 1,\n  URL: (string) (len=42) \"https://www.autotrader.ca/cars/on/toronto/\",\n  Title: (string) (len=51) \"New \u0026 Used Cars for sale in Toronto | autoTRADER.ca\",\n  Description: (string) \"\"\n },\n (googlesearch.Result) {\n  Rank: (int) 2,\n  URL: (string) (len=42) \"https://www.autotrader.ca/cars/on/toronto/\",\n  Title: (string) (len=51) \"New \u0026 Used Cars for sale in Toronto | autoTRADER.ca\",\n  Description: (string) \"\"\n },\n (googlesearch.Result) {\n  Rank: (int) 3,\n  URL: (string) (len=50) \"https://www.carpages.ca/ontario/toronto/used-cars/\",\n  Title: (string) (len=31) \"Used Cars Toronto | Carpages.ca\",\n  Description: (string) (len=337) \"13518 results - Used Cars, Trucks and SUVs for Sale in Toronto, ON. 2009 Acura TL. AWD, Navi, Camera, Leather, 3/Y warranty availabl. 2010 Chevrolet Traverse. 2LT. 2017 Jaguar F-PACE. 35T-AWD-NAVI-CAMERA-PANO ROOF-CPO WARRANTY. 2005 Audi A6. $2,495. 2007 Audi A4. 2.0T. 2012 Audi Q7. 3.0L Premium Plus. 2005 Ford F-250. 2010 Nissan Cube.\"\n }\n}\n```\n\n## :warning: Warning\n\nThe implementation relies on Google's search page DOM being constant. From time to time, Google changes their DOM and thus breaks the implementation.\n\nIn the event it changes, this package will be updated as soon as possible.\n\nAlso note, that if you call this function too quickly, Google detects that it is being scraped and produces a [recaptcha](https://www.google.com/recaptcha/intro/v3.html) which interferes with the scraping. **Don't call it in quick succession.** It may take some time before Google unblocks you.\n\n**Always** use the built-in [rate-limiter](https://godoc.org/github.com/rocketlaunchr/google-search#RateLimit) set to reasonable settings.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u0026nbsp;\u0026nbsp;\u003cstrong\u003eHTTP STATUS CODE: 429 \u0026mdash; Too Many Requests\u003c/strong\u003e\u003c/summary\u003e\n  \n\u003csvg width=\"100\" height=\"100\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cforeignObject width=\"100\" height=\"100\"\u003e\n  \u003cdiv xmlns=\"http://www.w3.org/1999/xhtml\"\u003e\n  \u003cdiv style=\"font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;\" onload=\"e=document.getElementById('captcha');if(e){e.focus();}\"\u003e\n  \u003cdiv style=\"max-width:400px;\"\u003e\n\n\n  \u003cdiv style=\"font-size:13px;\"\u003e\n  \u003cb\u003eAbout this page\u003c/b\u003e\u003cbr\u003e\u003cbr\u003e\n\n  Our systems have detected unusual traffic from your computer network.  This page checks to see if it\u0026#39;s really you sending the requests, and not a robot.  \u003ca href=\"#\" onclick=\"document.getElementById('infoDiv').style.display='block';\"\u003eWhy did this happen?\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n\n  \u003cdiv id=\"infoDiv\" style=\"display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;\"\u003e\n  This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the \u003ca href=\"//www.google.com/policies/terms/\"\u003eTerms of Service\u003c/a\u003e. The block will expire shortly after those requests stop.  In the meantime, solving the above CAPTCHA will let you continue to use our services.\u003cbr\u003e\u003cbr\u003eThis traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests.  If you share your network connection, ask your administrator for help \u0026mdash; a different computer using the same IP address may be responsible.  \u003ca href=\"//support.google.com/websearch/answer/86640\"\u003eLearn more\u003c/a\u003e\u003cbr\u003e\u003cbr\u003eSometimes you may be asked to solve the CAPTCHA if you are using advanced terms that robots are known to use, or sending requests very quickly.\n  \u003c/div\u003e\n\n  IP address: xxx.xx.xxx.xx\u003cbr\u003eTime: 2021-01-13T05:27:34Z\u003cbr\u003eURL: https://www.google.com/search?q=Hello+World\u0026amp;hl=en\u0026amp;num=20\u003cbr\u003e\n  \u003c/div\u003e\n  \u003c/div\u003e\n  \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/foreignObject\u003e\n\u003c/svg\u003e\n\u003c/details\u003e\n\n\n## Credits\n\nSpecial thanks to [Edmund Martin](https://edmundmartin.com/scraping-google-with-golang/).\n\n\nOther useful packages\n------------\n\n- [awesome-svelte](https://github.com/rocketlaunchr/awesome-svelte) - Resources for killing react.js\n- [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Statistics and data manipulation\n- [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go\n- [electron-alert](https://github.com/rocketlaunchr/electron-alert) - SweetAlert2 for Electron Applications\n- [igo](https://github.com/rocketlaunchr/igo) - A Go transpiler with cool new syntax such as fordefer (defer for for-loops)\n- [mysql-go](https://github.com/rocketlaunchr/mysql-go) - Properly cancel slow MySQL queries\n- [react](https://github.com/rocketlaunchr/react) - Build front end applications using Go\n- [remember-go](https://github.com/rocketlaunchr/remember-go) - Cache slow database queries\n- [showerglass](https://github.com/rocketlaunchr/showerglass) - A soothing face filter for privacy\n- [testing-go](https://github.com/rocketlaunchr/testing-go) - Testing framework for unit testing","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketlaunchr%2Fgoogle-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocketlaunchr%2Fgoogle-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocketlaunchr%2Fgoogle-search/lists"}