[https://github.com/imperatrona/twitter-scraper] Scrape the Twitter frontend API without authentication with Golang.
Find a file
Alexander Sheiko 96cc763b69 Fix test
2020-03-06 10:50:02 +02:00
.github/workflows Rename workflow 2019-09-21 12:07:49 +03:00
.gitignore Add .gitignore 2020-02-12 10:38:08 +02:00
go.mod chore: support go module 2020-02-14 21:46:15 +08:00
go.sum chore: support go module 2020-02-14 21:46:15 +08:00
LICENSE Add MIT license 2020-02-11 14:40:05 +02:00
profile.go Add get profile 2019-09-21 10:59:45 +03:00
profile_test.go Update profile 2020-02-11 13:13:58 +02:00
README.md Add Trends 2020-02-12 10:45:19 +02:00
trends.go Add Trends 2020-02-12 10:45:19 +02:00
trends_test.go Improve error msg 2020-02-14 16:10:29 +02:00
tweets.go selector change 2020-03-04 22:10:11 +03:00
tweets_test.go Fix test 2020-03-06 10:50:02 +02:00
util.go misspell 2020-02-14 16:21:05 +02:00

Twitter Scraper

Golang implementation of python library https://github.com/kennethreitz/twitter-scraper

Twitter's API is annoying to work with, and has lots of limitations — luckily their frontend (JavaScript) has it's own API, which I reverse-engineered. No API rate limits. No tokens needed. No restrictions. Extremely fast.

You can use this library to get the text of any user's Tweets trivially.

Usage

Get tweets

package main

import (
    "fmt"
    twitterscraper "github.com/n0madic/twitter-scraper"
)

func main() {
    for tweet := range twitterscraper.GetTweets("kennethreitz", 25) {
        if tweet.Error != nil {
            panic(tweet.Error)
        }
        fmt.Println(tweet.HTML)
    }
}

It appears you can ask for up to 25 pages of tweets reliably (~486 tweets).

Get profile

package main

import (
    "fmt"
    twitterscraper "github.com/n0madic/twitter-scraper"
)

func main() {
    profile, err := twitterscraper.GetProfile("kennethreitz")
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", profile)
}
package main

import (
    "fmt"
    twitterscraper "github.com/n0madic/twitter-scraper"
)

func main() {
    trends, err := twitterscraper.GetTrends()
    if err != nil {
        panic(err)
    }
    fmt.Println(trends)
}

Installation

go get -u github.com/n0madic/twitter-scraper