Skip to content
This repository has been archived by the owner on May 30, 2021. It is now read-only.

Commit

Permalink
Add User-Agent #70
Browse files Browse the repository at this point in the history
  • Loading branch information
sotetsuk committed May 15, 2016
1 parent 61caa3d commit f373194
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
9 changes: 7 additions & 2 deletions cmd/goscholar/main.go
Expand Up @@ -16,9 +16,11 @@ func main() {
Usage:
goscholar search [--keywords=<keywords>] [--author=<author>] [--title=<title>]
[--after=<year>] [--before=<year>] [--num=<num>] [--start=<start>]
goscholar find <cluster-id>
[--after=<year>] [--before=<year>] [--num=<num>] [--start=<start>]
[--user-agent=<user-agent>]
goscholar find <cluster-id> [--user-agent=<user-agent>]
goscholar cite <cluster-id> [--after=<year>] [--before=<year>] [--num=<num>] [--start=<start>]
[--user-agent=<user-agent>]
goscholar -h | --help
goscholar --version
Expand Down Expand Up @@ -109,6 +111,9 @@ func parseArgs(args map[string]interface{}) (q *goscholar.Query) {
if args["--start"] != nil {
start = args["--start"].(string)
}
if args["--user-agent"] != nil {
goscholar.USER_AGENT = args["--user-agent"].(string)
}

if num == "" {
num = "10" // as default
Expand Down
20 changes: 19 additions & 1 deletion fetch.go
Expand Up @@ -4,14 +4,32 @@ import (
"errors"
"github.com/PuerkitoBio/goquery"
log "github.com/Sirupsen/logrus"
"net/http"
"strings"
)

// Fetch gets a Document from a given URL. For usage, see the example of Overview.
func Fetch(url string) (doc *goquery.Document, err error) {
log.WithFields(log.Fields{"url": url}).Info("Fetch sends request")

doc, err = goquery.NewDocument(url)
// set request
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.WithFields(log.Fields{"url": url, "err": err}).Error("Failed to generate new request")
return nil, err
}
req.Header.Set("User-Agent", USER_AGENT)

// send request and get response
client := http.DefaultClient
res, err := client.Do(req)
if err != nil {
log.WithFields(log.Fields{"url": url, "err": err}).Error("Failed to get response")
return nil, err
}

// generate new Document
doc, err = goquery.NewDocumentFromResponse(res)
log.WithFields(log.Fields{"doc.url": doc.Url}).Info("goquery.Document is generated")
if err != nil {
log.WithFields(log.Fields{"url": url, "err": err}).Error("Generating goquery.Documentation failed")
Expand Down
4 changes: 4 additions & 0 deletions property.go
Expand Up @@ -18,3 +18,7 @@ const (
article_sidebar_selector = ".gs_md_wp > a"
sidebar_text_selector = ".gs_ggsS"
)

var (
USER_AGENT = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
)

0 comments on commit f373194

Please sign in to comment.