2024-06-02 18:32:29 +00:00
|
|
|
# puppeteer api client
|
|
|
|
|
|
|
|
This is a golang client for the api exposed by the puppeteer docker container.
|
|
|
|
|
|
|
|
https://github.com/l0co/docker-puppeteer-api
|
|
|
|
|
|
|
|
# usage
|
|
|
|
|
|
|
|
```go
|
|
|
|
package main
|
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
_ "github.com/joho/godotenv/autoload"
|
|
|
|
"sneak.berlin/go/puppeteerapiclient"
|
|
|
|
)
|
|
|
|
|
|
|
|
const url = "https://news.ycombinator.com"
|
|
|
|
const selector = ".athing .title .titleline"
|
2024-06-02 18:32:29 +00:00
|
|
|
|
|
|
|
func main() {
|
|
|
|
apiURL := os.Getenv("API_URL")
|
|
|
|
apiSalt := os.Getenv("API_SALT")
|
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
client := puppeteerapiclient.NewClient(apiURL, apiSalt)
|
2024-06-02 18:32:29 +00:00
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
2024-06-02 18:32:29 +00:00
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
defer cancel()
|
2024-06-02 18:32:29 +00:00
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
response, err := client.Scrape(ctx, url, selector)
|
2024-06-02 18:32:29 +00:00
|
|
|
|
2024-06-02 18:37:25 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
fmt.Println(response.Content)
|
2024-06-02 18:32:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
# License
|
|
|
|
|
|
|
|
WTFPL
|