Giter VIP home page Giter VIP logo

fake-useragent's Introduction

Fake Useragent image

A wide variety of random useragents

简体中文

Support

  • All User-Agent Random
  • Chrome
  • InternetExplorer (IE)
  • Firefox
  • Safari
  • Android
  • MacOSX
  • IOS
  • Linux
  • IPhone
  • IPad
  • Computer
  • Mobile

Installation

$ go get github.com/EDDYCJY/fake-useragent

Usage

package main

import (
	"log"

	"github.com/EDDYCJY/fake-useragent"
)

func main() {
	// recommend to use
	random := browser.Random()
	log.Printf("Random: %s", random)

	chrome := browser.Chrome()
	log.Printf("Chrome: %s", chrome)

	internetExplorer := browser.InternetExplorer()
	log.Printf("IE: %s", internetExplorer)

	firefox := browser.Firefox()
	log.Printf("Firefox: %s", firefox)

	safari := browser.Safari()
	log.Printf("Safari: %s", safari)

	android := browser.Android()
	log.Printf("Android: %s", android)

	macOSX := browser.MacOSX()
	log.Printf("MacOSX: %s", macOSX)

	ios := browser.IOS()
	log.Printf("IOS: %s", ios)

	linux := browser.Linux()
	log.Printf("Linux: %s", linux)

	iphone := browser.IPhone()
	log.Printf("IPhone: %s", iphone)

	ipad := browser.IPad()
	log.Printf("IPad: %s", ipad)

	computer := browser.Computer()
	log.Printf("Computer: %s", computer)

	mobile := browser.Mobile()
	log.Printf("Mobile: %s", mobile)
}

Customize

You can adjust the maximum number of crawl pages and time intervals, maximum timeouts. If not, it is the default.

client := browser.Client{
	MaxPage: 3,
	Delay: 200 * time.Millisecond,
	Timeout: 10 * time.Second,
}
cache := browser.Cache{}
b := browser.NewBrowser(client, cache)

random := b.Random()

Update the browser temporary file cache (re-get the source to get the latest data).

client := browser.Client{}
cache := browser.Cache{
	UpdateFile: true,
}
b := browser.NewBrowser(client, cache)

Output

Random: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36

IE: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

Firefox: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0

Safari: Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0 Mobile/15D60 Safari/604.1

Android: Mozilla/5.0 (Linux; Android 6.0; MYA-L22 Build/HUAWEIMYA-L22) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36

MacOSX: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14

IOS: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1

Linux: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0

IPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1

IPad: Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

Computer: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Mobile: Mozilla/5.0 (Linux; Android 7.0; Redmi Note 4 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36

fake-useragent's People

Contributors

eddycjy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fake-useragent's Issues

math/rand: panic: runtime error: index out of range

When run it with large threads, it panic this error.
ath/rand.(*rngSource).Uint64(...) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rng.go:249 math/rand.(*rngSource).Int63(0xc000097500, 0x1) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rng.go:234 +0x89 math/rand.(*Rand).Int63(0xc000082f90, 0x412c70) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rand.go:85 +0x33 math/rand.(*Rand).Int31(0xc000082f90, 0x1) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rand.go:99 +0x2b math/rand.(*Rand).Int31n(0xc000082f90, 0xbb8, 0xc00052e580) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rand.go:134 +0x4f math/rand.(*Rand).Intn(0xc000082f90, 0xbb8, 0xfa) /usr/local/Cellar/go/1.11.1/libexec/src/math/rand/rand.go:172 +0x45

After google something, I see math/rand is not threads safe. I think we should add mutex for it.

demo运行全部返回空

GOROOT=C:\Go #gosetup
GOPATH=C:\Users\Administrator\go #gosetup
C:\Go\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp___go_build_demo_02_demo1.exe demo_02/demo1 #gosetup
C:\Users\Administrator\AppData\Local\Temp___go_build_demo_02_demo1.exe #gosetup
2020/12/02 15:02:20 Random:
2020/12/02 15:02:20 Chrome:
2020/12/02 15:02:20 IE:
2020/12/02 15:02:20 Firefox:
2020/12/02 15:02:20 Safari:
2020/12/02 15:02:20 Android:
2020/12/02 15:02:20 MacOSX:
2020/12/02 15:02:20 IOS:
2020/12/02 15:02:20 Linux:
2020/12/02 15:02:20 IPhone:
2020/12/02 15:02:20 IPad:
2020/12/02 15:02:20 Computer:
2020/12/02 15:02:20 Mobile:

Process finished with exit code 0

why me get Chrome header have "" ?

`package main

import (
browser "github.com/eddycjy/fake-useragent"
"log"
)

func main() {
random := browser.Random()
log.Printf("Random: %s", random)
chrome := browser.Chrome()
log.Printf("Chrome: %s", chrome)
}

out put
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/xiaxichen/go #gosetup
/usr/local/go/bin/go build -o /private/var/folders/qk/tgc9vq6j6lbgwlsxgb4lyyd40000gn/T/___go_build_main_go /Users/xiaxichen/goDistributedSpider/crawl/main.go #gosetup
/private/var/folders/qk/tgc9vq6j6lbgwlsxgb4lyyd40000gn/T/___go_build_main_go

2020/10/10 15:19:19 Random: Mozilla/5.0 (Linux; Android 6.0; MotoG3 Build/MPIS24.65-33.1-2-16) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36
2020/10/10 15:19:19 Chrome:

`

A weird crash during repeated calls to `fakeuseragent.Random()`

panic: runtime error: index out of range [-1]

goroutine 102 [running]:
math/rand.(*rngSource).Uint64(...)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rng.go:249
math/rand.(*rngSource).Int63(0xffffffffffffffff?)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rng.go:234 +0x90
math/rand.(*Rand).Int63(...)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rand.go:84
math/rand.(*Rand).Int31(...)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rand.go:98
math/rand.(*Rand).Int31n(0x140003b0060, 0xbb8)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rand.go:133 +0x50
math/rand.(*Rand).Intn(0x140016a7a18?, 0x14002236be0?)
	/opt/homebrew/Cellar/go/1.18.3/libexec/src/math/rand/rand.go:171 +0x34
github.com/EDDYCJY/fake-useragent/useragent.(*useragent).GetAllRandom(0x140016a7ab8?)
	/Users/ashishb/go/pkg/mod/github.com/!e!d!d!y!c!j!y/[email protected]/useragent/warehouse.go:50 +0x12c
github.com/EDDYCJY/fake-useragent.(*browser).Random(...)
	/Users/ashishb/go/pkg/mod/github.com/!e!d!d!y!c!j!y/[email protected]/browser.go:61
github.com/EDDYCJY/fake-useragent.Random(...)
...

Error in func (s *Spider) StartBrowser

Hello.

In code func (s *Spider) StartBrowser(..) mistake.

was:
body, err := downloader.Get(url)
defer body.Close()
if err != nil {
return
}

need:
body, err := downloader.Get(url)
if err != nil {
return
}
defer body.Close()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.