From 37bb62a82a6bce76863b750a03cae4c51d7398ff Mon Sep 17 00:00:00 2001 From: xisco Date: Wed, 13 May 2020 17:35:44 +0200 Subject: [PATCH] create readTweetsFromHtml func for recycle code --- search.go | 1 + tweets.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 search.go diff --git a/search.go b/search.go new file mode 100644 index 0000000..df409dd --- /dev/null +++ b/search.go @@ -0,0 +1 @@ +package twitterscraper diff --git a/tweets.go b/tweets.go index 407b31b..124ee36 100644 --- a/tweets.go +++ b/tweets.go @@ -68,7 +68,6 @@ func GetTweets(user string, pages int) <-chan *Result { // FetchTweets gets tweets for a given user, via the Twitter frontend API func FetchTweets(user string, last string) ([]*Tweet, error) { - var tweets []*Tweet req, err := http.NewRequest("GET", fmt.Sprintf(ajaxURL, user), nil) if err != nil { @@ -96,6 +95,17 @@ func FetchTweets(user string, last string) ([]*Tweet, error) { return nil, err } + tweets, err := readTweetsFromHTML(htm) + if err != nil { + return nil, err + } + + return tweets, nil +} + +func readTweetsFromHTML (htm *strings.Reader) ([]*Tweet, error) { + var tweets []*Tweet + doc, err := goquery.NewDocumentFromReader(htm) if err != nil { return nil, err @@ -108,6 +118,7 @@ func FetchTweets(user string, last string) ([]*Tweet, error) { tweet.Timestamp, _ = strconv.ParseInt(timeStr, 10, 64) tweet.TimeParsed = time.Unix(tweet.Timestamp, 0) tweet.ID = s.AttrOr("data-item-id", "") + user, _ := s.Find(".tweet").Attr("data-screen-name") tweet.PermanentURL = fmt.Sprintf("https://twitter.com/%s/status/%s", user, tweet.ID) tweet.Text = s.Find(".tweet-text").Text() tweet.HTML, _ = s.Find(".tweet-text").Html()