google-search/README.md

81 lines
3.1 KiB
Markdown
Raw Normal View History

2020-06-13 16:40:22 +10:00
<p align="right">
<a href="http://godoc.org/github.com/rocketlaunchr/google-search"><img src="http://godoc.org/github.com/rocketlaunchr/google-search?status.svg" /></a>
<a href="https://goreportcard.com/report/github.com/rocketlaunchr/google-search"><img src="https://goreportcard.com/badge/github.com/rocketlaunchr/google-search" /></a>
</p>
2020-05-28 17:35:06 +10:00
<p align="center">
<img src="https://github.com/rocketlaunchr/google-search/raw/master/screenshot.png" alt="google home page" />
</p>
2020-03-11 15:34:47 +11:00
Quickly scrape Google Search Results.
2020-03-11 15:30:48 +11:00
**the project to show your appreciation.**
## Example
```go
package main
import (
"context"
"fmt"
"github.com/rocketlaunchr/google-search"
)
func main() {
ctx := context.Background()
2020-03-11 15:43:21 +11:00
fmt.Println(googlesearch.Search(ctx, "cars for sale in Toronto, Canada"))
2020-03-11 15:30:48 +11:00
}
```
2020-03-11 15:50:24 +11:00
## Results:
```go
([]googlesearch.Result) (len=11 cap=16) {
(googlesearch.Result) {
Rank: (int) 1,
URL: (string) (len=42) "https://www.autotrader.ca/cars/on/toronto/",
Title: (string) (len=51) "New & Used Cars for sale in Toronto | autoTRADER.ca",
Description: (string) ""
},
(googlesearch.Result) {
Rank: (int) 2,
URL: (string) (len=42) "https://www.autotrader.ca/cars/on/toronto/",
Title: (string) (len=51) "New & Used Cars for sale in Toronto | autoTRADER.ca",
Description: (string) ""
},
(googlesearch.Result) {
Rank: (int) 3,
URL: (string) (len=50) "https://www.carpages.ca/ontario/toronto/used-cars/",
Title: (string) (len=31) "Used Cars Toronto | Carpages.ca",
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."
}
}
```
2020-03-11 15:33:36 +11:00
## Warning
The implementation relies on Google's search page DOM being constant. From time to time, Google changes their DOM and thus breaks the implementation.
2020-03-11 15:33:36 +11:00
In the event it changes, this package will be updated as soon as possible.
2020-03-12 10:19:04 +11:00
Also 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.**
2020-03-11 15:37:40 +11:00
## Credits
2020-03-11 15:39:09 +11:00
Special thanks to [Edmund Martin](https://edmundmartin.com/scraping-google-with-golang/).
2020-03-11 15:37:40 +11:00
2020-03-11 15:30:48 +11:00
Other useful packages
------------
- [dataframe-go](https://github.com/rocketlaunchr/dataframe-go) - Statistics and data manipulation
- [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go
- [electron-alert](https://github.com/rocketlaunchr/electron-alert) - SweetAlert2 for Electron Applications
- [igo](https://github.com/rocketlaunchr/igo) - A Go transpiler with cool new syntax such as fordefer (defer for for-loops)
- [mysql-go](https://github.com/rocketlaunchr/mysql-go) - Properly cancel slow MySQL queries
- [react](https://github.com/rocketlaunchr/react) - Build front end applications using Go
- [remember-go](https://github.com/rocketlaunchr/remember-go) - Cache slow database queries