browser 3.0.1 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +1 -1
- data/.gitignore +1 -0
- data/.prettierignore +1 -0
- data/.rubocop.yml +9 -0
- data/.travis.yml +3 -3
- data/CHANGELOG.md +60 -16
- data/README.md +22 -46
- data/bots.yml +300 -294
- data/browser.gemspec +3 -1
- data/lib/browser/base.rb +10 -5
- data/lib/browser/browser.rb +5 -24
- data/lib/browser/chrome.rb +6 -2
- data/lib/browser/duck_duck_go.rb +22 -0
- data/lib/browser/edge.rb +2 -2
- data/lib/browser/meta.rb +0 -1
- data/lib/browser/meta/base.rb +0 -1
- data/lib/browser/platform.rb +1 -1
- data/lib/browser/platform/base.rb +3 -2
- data/lib/browser/platform/mac.rb +3 -1
- data/lib/browser/safari.rb +8 -1
- data/lib/browser/samsung_browser.rb +21 -0
- data/lib/browser/version.rb +1 -1
- data/test/test_helper.rb +8 -0
- data/test/ua.yml +9 -1
- data/test/ua_bots.yml +8 -2
- data/test/unit/duck_duck_go_test.rb +35 -0
- data/test/unit/edge_test.rb +34 -2
- data/test/unit/micro_messenger_test.rb +21 -6
- data/test/unit/platform_test.rb +6 -1
- data/test/unit/samsung_browser_test.rb +23 -0
- metadata +12 -6
- data/.bundle/config +0 -2
- data/lib/browser/meta/modern.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d83e06fd8c03def4d4c2af17fbbd94580594eeb689aa6f4d0fda3d7c94be4c8c
|
4
|
+
data.tar.gz: 4e8b416860701c61d4a1cf40d2a51316c28431e60d24716d8092746faff88c70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f29ee60621611d8abb82837eac44594b50739e7b39991bd8ce73c7b701f7630e314d3ac22fdf80567d3c2a44985ad4a632204d14805d7015e18b856d357dfc
|
7
|
+
data.tar.gz: 9bb2826023b3e7d6b7a7ca7c5f0d14b0871bcb39764d3c3c05ecba7784cc4458949533dfc16cc3de7b5f3844faf254d6faf127613ca27547d52ea07040e7ccfa
|
data/.github/ISSUE_TEMPLATE.md
CHANGED
data/.gitignore
CHANGED
data/.prettierignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.yml
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,35 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
-
-
|
5
|
+
- Fix Chrome Lighthouse detection.
|
6
|
+
- Add Skype to bot list.
|
7
|
+
|
8
|
+
## 4.1.0
|
9
|
+
|
10
|
+
- Add Samsung browser.
|
11
|
+
- Add Google Image Proxy to the bot list.
|
12
|
+
- Add The Knowledge AI bot to the bot list.
|
13
|
+
- Add Go HttpClient to the bot list.
|
14
|
+
- Fix Microsoft Edge detection on Android and iOS.
|
15
|
+
- Fix MicroMessenger detection on Android
|
16
|
+
|
17
|
+
## 4.0.0
|
18
|
+
|
19
|
+
- Add Chrome Lighthouse to bot list.
|
20
|
+
- Add SeobilityBot to the bot list.
|
21
|
+
- Detect Mac-based platforms differently, depending on the version; "Mac OS X"
|
22
|
+
will be returned for versions prior to 10.12, and "macOS" for newer versions.
|
23
|
+
- Remove `Browser.modern_rules` and `Browser::Base#modern?`.
|
24
|
+
- Add DuckDuckGo browser.
|
25
|
+
|
26
|
+
# 3.0.3
|
27
|
+
|
28
|
+
- Deprecate `Browser.modern_rules` and `Browser::Base#modern?`. Theses methods
|
29
|
+
will be removed on the next major released, or by June 1st 2020.
|
30
|
+
|
31
|
+
## 3.0.2
|
32
|
+
|
33
|
+
- Remove .bundle directory from package.
|
6
34
|
|
7
35
|
## 3.0.1
|
8
36
|
|
@@ -13,23 +41,32 @@
|
|
13
41
|
- Add ArchiveTeam's ArchiveBot to the bot list.
|
14
42
|
- Fix QQ Browser detection.
|
15
43
|
- Update modern rules.
|
16
|
-
- You can now define new bot matchers by adding a callable object to
|
44
|
+
- You can now define new bot matchers by adding a callable object to
|
45
|
+
`Browser::Bot.matchers`.
|
17
46
|
- Fix `browser.yandex?` and `browser.sputnik?`.
|
18
|
-
- [BREAKING CHANGE] Removed methods to enable the bot's empty user agent
|
19
|
-
|
47
|
+
- [BREAKING CHANGE] Removed methods to enable the bot's empty user agent
|
48
|
+
detection (`Browser::Bot.detect_empty_ua!` and
|
49
|
+
`Browser::Bot.detect_empty_ua?`).
|
50
|
+
- [BREAKING CHANGE] Bot detection is now more aggressive by default. It matches
|
51
|
+
empty user agents, anything that matches
|
52
|
+
`crawl|fetch|search|monitoring|spider|bot`, and anything listed under
|
53
|
+
https://github.com/fnando/browser/blob/master/bots.yml.
|
20
54
|
- Add Jaunt to the bot list.
|
21
55
|
|
22
56
|
## 2.7.1
|
23
57
|
|
24
|
-
- Handle Snapchat user agents that have a space or an empty string instead of a
|
58
|
+
- Handle Snapchat user agents that have a space or an empty string instead of a
|
59
|
+
slash before the version.
|
25
60
|
- Fix iOS 10+ version detection.
|
26
|
-
- Add fallback versions for instagram and snapchat to avoid NoMethodErrors on
|
61
|
+
- Add fallback versions for instagram and snapchat to avoid NoMethodErrors on
|
62
|
+
unexpected user agents.
|
27
63
|
|
28
64
|
## 2.7.0
|
29
65
|
|
30
66
|
- Add more Slack bots.
|
31
67
|
- Handle instagram user agents that have a slash instead of a space.
|
32
|
-
- Add `Browser::Bot.why?(ua)` to help debugging why a user agent is considered
|
68
|
+
- Add `Browser::Bot.why?(ua)` to help debugging why a user agent is considered
|
69
|
+
bot.
|
33
70
|
- Promote Snapchat to a browser (it was detected as a bot previously).
|
34
71
|
- Detect Edge based on Chrome correctly.
|
35
72
|
- Improve Yandex detection.
|
@@ -45,7 +82,8 @@
|
|
45
82
|
|
46
83
|
- Add GarlikCrawler, ImplisenseBot and WikiDo bots.
|
47
84
|
- Add Mastodon URL expander bot.
|
48
|
-
- Add eZ Publish Link Validator, GermCrawler, Pu_iN Crawler, ZoomBot, and
|
85
|
+
- Add eZ Publish Link Validator, GermCrawler, Pu_iN Crawler, ZoomBot, and
|
86
|
+
ZoominfoBot bots.
|
49
87
|
- Add Datanyze bot.
|
50
88
|
- Add support for Instagram in-app browser.
|
51
89
|
- Add Updown.io monitor bot.
|
@@ -67,13 +105,13 @@
|
|
67
105
|
- Add Jooble bot.
|
68
106
|
- Add Fyre bot.
|
69
107
|
- Drop Rails 4 official support.
|
70
|
-
- Fix accept-language sorting (If HTTP-header has value `en,fr`—without
|
108
|
+
- Fix accept-language sorting (If HTTP-header has value `en,fr`—without
|
109
|
+
qualities—the first language should be `en` instead of `fr`).
|
71
110
|
- Ignore malformed strings when comparing versions.
|
72
111
|
- Fix Facebook detection on newer apps.
|
73
112
|
- Change precedence for bot detection when common libs are used.
|
74
113
|
- Add Yandex's search browser to the exception list.
|
75
114
|
|
76
|
-
|
77
115
|
## v2.5.3
|
78
116
|
|
79
117
|
- Add Google Site Verification to the bot list.
|
@@ -114,8 +152,10 @@
|
|
114
152
|
- Add Google Drive API, Proximic Spider, NewRelic pinger and SocialRank bots.
|
115
153
|
- Add Pinboard in-app browser to the bot exception list.
|
116
154
|
- All browser detection methods can now compare versions.
|
117
|
-
- All platform detection methods can now compare versions (except `#linux?` and
|
118
|
-
|
155
|
+
- All platform detection methods can now compare versions (except `#linux?` and
|
156
|
+
`#firefox_os?`).
|
157
|
+
- Add `browser/aliases`, so you can have methods on the base object (e.g.
|
158
|
+
`browser.mobile?`). See README for instructions.
|
119
159
|
- Remove official support for Rails 3 and Ruby 2.1.
|
120
160
|
|
121
161
|
## v2.3.0
|
@@ -146,7 +186,8 @@
|
|
146
186
|
|
147
187
|
## v2.0.3
|
148
188
|
|
149
|
-
- Fix issue with version detection when no actual version is provided (i.e. the
|
189
|
+
- Fix issue with version detection when no actual version is provided (i.e. the
|
190
|
+
user agent doesn't have any version information).
|
150
191
|
|
151
192
|
## v2.0.2
|
152
193
|
|
@@ -159,9 +200,12 @@
|
|
159
200
|
|
160
201
|
## v2.0.0
|
161
202
|
|
162
|
-
- `Browser#platform` now returns instance of `Browser::Platform`, instead of a
|
163
|
-
|
164
|
-
- `Browser#
|
203
|
+
- `Browser#platform` now returns instance of `Browser::Platform`, instead of a
|
204
|
+
`String`. It contains information about the platform (software).
|
205
|
+
- `Browser#device` was added. It returns information about the device
|
206
|
+
(hardware).
|
207
|
+
- `Browser#accept_language` now returns a list of `Browser::AcceptLanguage`
|
208
|
+
objects.
|
165
209
|
- `Browser#bot` now returns a `Browser::Bot` instance.
|
166
210
|
- Safari running as web app mode is not recognized as Safari anymore.
|
167
211
|
- ruby-2.3+ will always activate frozen strings.
|
data/README.md
CHANGED
@@ -25,6 +25,7 @@ browser = Browser.new("Some User Agent", accept_language: "en-us")
|
|
25
25
|
browser.bot?
|
26
26
|
browser.chrome?
|
27
27
|
browser.core_media?
|
28
|
+
browser.duck_duck_go?
|
28
29
|
browser.edge? # Newest MS browser
|
29
30
|
browser.electron? # Electron Framework
|
30
31
|
browser.firefox?
|
@@ -34,7 +35,6 @@ browser.ie?(6) # detect specific IE version
|
|
34
35
|
browser.ie?([">8", "<10"]) # detect specific IE (IE9).
|
35
36
|
browser.known? # has the browser been successfully detected?
|
36
37
|
browser.meta # an array with several attributes
|
37
|
-
browser.modern? # Webkit, Firefox 17+, IE 9+ and Opera 12+
|
38
38
|
browser.name # readable browser name
|
39
39
|
browser.nokia?
|
40
40
|
browser.opera?
|
@@ -43,6 +43,7 @@ browser.phantom_js?
|
|
43
43
|
browser.quicktime?
|
44
44
|
browser.safari?
|
45
45
|
browser.safari_webapp_mode?
|
46
|
+
browser.samsung_browser?
|
46
47
|
browser.to_s # the meta info joined by space
|
47
48
|
browser.uc_browser?
|
48
49
|
browser.version # major version number
|
@@ -145,23 +146,26 @@ browser.mobile? #=> false
|
|
145
146
|
- For a list of device detections, check [lib/browser/device.rb](https://github.com/fnando/browser/blob/master/lib/browser/device.rb)
|
146
147
|
- For a list of bot detections, check [bots.yml](https://github.com/fnando/browser/blob/master/bots.yml)
|
147
148
|
|
148
|
-
###
|
149
|
+
### Detecting modern browsers
|
149
150
|
|
150
|
-
|
151
|
-
|
152
|
-
* Chrome 65+
|
153
|
-
* Safari 10+
|
154
|
-
* Firefox 52+
|
155
|
-
* IE11+
|
156
|
-
* Microsoft Edge 39+
|
157
|
-
* Opera 50+
|
158
|
-
|
159
|
-
You can define your own rules. A rule must be a proc/lambda or any object that implements the method === and accepts the browser object. To redefine all rules, clear the existing rules before adding your own.
|
151
|
+
To detect whether a browser can be considered as modern or not, create a method that abstracts your versioning constraints. The following example will consider any of the following browsers as a modern:
|
160
152
|
|
161
153
|
```ruby
|
162
|
-
#
|
163
|
-
Browser.
|
164
|
-
|
154
|
+
# Expects an Browser instance,
|
155
|
+
# like in `Browser.new(user_agent, accept_language: language)`.
|
156
|
+
def modern_browser?(browser)
|
157
|
+
[
|
158
|
+
browser.chrome?(">= 65"),
|
159
|
+
browser.safari?(">= 10"),
|
160
|
+
browser.firefox?(">= 52"),
|
161
|
+
browser.ie?(">= 11") && !browser.compatibility_view?,
|
162
|
+
browser.edge?(">= 15"),
|
163
|
+
browser.opera?(">= 50"),
|
164
|
+
browser.facebook?
|
165
|
+
&& browser.safari_webapp_mode?
|
166
|
+
&& browser.webkit_full_version.to_i >= 602
|
167
|
+
].any?
|
168
|
+
end
|
165
169
|
```
|
166
170
|
|
167
171
|
### Rails integration
|
@@ -240,9 +244,6 @@ browser.msie_full_version
|
|
240
244
|
|
241
245
|
browser.compatibility_view?
|
242
246
|
#=> true
|
243
|
-
|
244
|
-
browser.modern?
|
245
|
-
#=> false
|
246
247
|
```
|
247
248
|
|
248
249
|
This behavior changed in `v1.0.0`; previously there wasn't a way of getting the real browser version.
|
@@ -298,7 +299,7 @@ You can use the `Browser::Middleware` to redirect user agents.
|
|
298
299
|
|
299
300
|
```ruby
|
300
301
|
use Browser::Middleware do
|
301
|
-
redirect_to "/upgrade"
|
302
|
+
redirect_to "/upgrade" if browser.ie?
|
302
303
|
end
|
303
304
|
```
|
304
305
|
|
@@ -306,17 +307,7 @@ If you're using Rails, you can use the route helper methods. Just add something
|
|
306
307
|
|
307
308
|
```ruby
|
308
309
|
Rails.configuration.middleware.use Browser::Middleware do
|
309
|
-
redirect_to upgrade_path
|
310
|
-
end
|
311
|
-
```
|
312
|
-
|
313
|
-
Notice that you can have multiple conditionals.
|
314
|
-
|
315
|
-
```ruby
|
316
|
-
Rails.configuration.middleware.use Browser::Middleware do
|
317
|
-
next if browser.bot.search_engine?
|
318
|
-
redirect_to upgrade_path(browser: "oldie") if browser.ie? && !browser.modern?
|
319
|
-
redirect_to upgrade_path(browser: "oldfx") if browser.firefox? && !browser.modern?
|
310
|
+
redirect_to upgrade_path if browser.ie?
|
320
311
|
end
|
321
312
|
```
|
322
313
|
|
@@ -324,25 +315,10 @@ If you need access to the `Rack::Request` object (e.g. to exclude a path), you c
|
|
324
315
|
|
325
316
|
```ruby
|
326
317
|
Rails.configuration.middleware.use Browser::Middleware do
|
327
|
-
redirect_to upgrade_path
|
318
|
+
redirect_to upgrade_path if browser.ie? && request.env["PATH_INFO"] != "/exclude_me"
|
328
319
|
end
|
329
320
|
```
|
330
321
|
|
331
|
-
### Migrating to v2
|
332
|
-
|
333
|
-
#### Troubleshooting
|
334
|
-
|
335
|
-
##### `TypeError: no implicit conversion of Hash into String`
|
336
|
-
|
337
|
-
The class constructor now has a different signature. Change the instantiation from `Browser.new(options)` to `Browser.new(ua, options)`, where:
|
338
|
-
|
339
|
-
- `ua`: must be a string representing the user agent.
|
340
|
-
- `options`: must be a hash (for now it only accepts the `accept_language` option).
|
341
|
-
|
342
|
-
##### `NoMethodError: undefined method 'user_agent'`
|
343
|
-
|
344
|
-
`.ua` can now be used to retrieve the full User Agent string.
|
345
|
-
|
346
322
|
## Development
|
347
323
|
|
348
324
|
### Versioning
|
data/bots.yml
CHANGED
@@ -1,299 +1,305 @@
|
|
1
1
|
---
|
2
|
-
200pleasebot:
|
3
|
-
360spider:
|
4
|
-
abot:
|
5
|
-
addthis:
|
6
|
-
adldxbot:
|
7
|
-
admantx:
|
8
|
-
adsbot-google:
|
9
|
-
adstxtcrawler:
|
10
|
-
advbot:
|
11
|
-
ahrefsbot:
|
12
|
-
alexa:
|
13
|
-
anderspink:
|
14
|
-
apache-httpclient:
|
15
|
-
apachebench:
|
2
|
+
200pleasebot: 200PleaseBot
|
3
|
+
360spider: 360Spider
|
4
|
+
abot: CrawlDaddy, abot
|
5
|
+
addthis: AddThis
|
6
|
+
adldxbot: Microsoft Bing Ads
|
7
|
+
admantx: ADmantX Platform Semantic Analyzer
|
8
|
+
adsbot-google: Google Adwords
|
9
|
+
adstxtcrawler: AdsTxtCrawler
|
10
|
+
advbot: AdvBot
|
11
|
+
ahrefsbot: Ahrefs backlinks research tool
|
12
|
+
alexa: Alexa Crawler
|
13
|
+
anderspink: AndersPinkBot
|
14
|
+
apache-httpclient: Java http library
|
15
|
+
apachebench: ApacheBench (ab)
|
16
16
|
apis-google: APIs-Google
|
17
|
-
appengine-google:
|
18
|
-
applebot:
|
19
|
-
archive.org_bot:
|
20
|
-
archiveteam archivebot:
|
21
|
-
ask jeeves:
|
22
|
-
asynchttpclient:
|
23
|
-
awe.sm:
|
24
|
-
baidu:
|
25
|
-
barkrowler:
|
26
|
-
bdcbot:
|
27
|
-
bingbot:
|
28
|
-
bingpreview:
|
29
|
-
bitlybot:
|
30
|
-
blekkobot:
|
31
|
-
blexbot:
|
32
|
-
bot@linkfluence.net:
|
33
|
-
bubing:
|
34
|
-
bufferbot:
|
35
|
-
buibui-checkbot:
|
36
|
-
butterfly:
|
37
|
-
buzzbot:
|
38
|
-
buzztalk:
|
39
|
-
catchbot:
|
40
|
-
check_http:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
comodo
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
google
|
93
|
-
google
|
94
|
-
google-
|
95
|
-
google-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
17
|
+
appengine-google: Google App Engine
|
18
|
+
applebot: Apple Bot
|
19
|
+
archive.org_bot: Internet Archive (archive.org)
|
20
|
+
archiveteam archivebot: ArchiveTeam ArchiveBot
|
21
|
+
ask jeeves: Ask Jeeves
|
22
|
+
asynchttpclient: Java http and WebSocket client library
|
23
|
+
awe.sm: Awe.sm URL expander
|
24
|
+
baidu: Baidu
|
25
|
+
barkrowler: Barkrowler
|
26
|
+
bdcbot: Big Data Corp
|
27
|
+
bingbot: Microsoft Bing
|
28
|
+
bingpreview: Microsoft Bing preview
|
29
|
+
bitlybot: bit.ly bot
|
30
|
+
blekkobot: Blekkobot
|
31
|
+
blexbot: BLEXBot (webmeup)
|
32
|
+
bot@linkfluence.net: Linkfluence bot
|
33
|
+
bubing: BUbiNG
|
34
|
+
bufferbot: BufferBot
|
35
|
+
buibui-checkbot: buibui
|
36
|
+
butterfly: Topsy Labs
|
37
|
+
buzzbot: Buzzbot
|
38
|
+
buzztalk: buzztalk
|
39
|
+
catchbot: CatchBot (catchbot.com)
|
40
|
+
check_http: Nagios monitor
|
41
|
+
chrome-lighthouse: Chrome-Lighthouse
|
42
|
+
cipacrawler: CipaCrawler
|
43
|
+
cliqzbot: Cliqzbot
|
44
|
+
cloudflare: CloudFlare-AlwaysOnline
|
45
|
+
cmradar/0.1: CMRadar/0.1
|
46
|
+
coldfusion: ColdFusion http library
|
47
|
+
commoncrawl: CCBot
|
48
|
+
comodo ssl checker: COMODO SSL Checker
|
49
|
+
comodo-webinspector-crawler: Comodo
|
50
|
+
copypants: BotPants
|
51
|
+
crowsnest: Crowsnest
|
52
|
+
curabot: cura.yt
|
53
|
+
curl: curl unix CLI http client
|
54
|
+
dap/nethttp: DAP/NetHTTP
|
55
|
+
datafeedwatch: DataFeedWatch
|
56
|
+
datagnionbot: datagnion.com/bot.html
|
57
|
+
datanyze: Datanyze
|
58
|
+
daumoa: Korean portal and search engine indexing bot
|
59
|
+
developers.google.com/+/web/snippet/: Google Plus
|
60
|
+
diffbot: Diffbot
|
61
|
+
digitalpersona fingerprint software: HP Fingerprint scanner
|
62
|
+
domain re-animator bot: Domain Re-Animator Bot
|
63
|
+
domainsbot: DomainsBot
|
64
|
+
domaintunocrawler: DomainTuno
|
65
|
+
dotbot: Dot Bot
|
66
|
+
duckduck: Duck Duck Go
|
67
|
+
elb-healthchecker: AWS ELB HealthChecker
|
68
|
+
embedly: Embedly
|
69
|
+
eoaagent: EOAAgent
|
70
|
+
everyonesocialbot: EveryoneSocial
|
71
|
+
evrinid: Evri bot
|
72
|
+
exabot: Exalead's bot
|
73
|
+
exaleadcloudview: ExaleadCloudView
|
74
|
+
ez publish: eZ Publish Link Validator
|
75
|
+
facebookexternalhit: Facebook Bot
|
76
|
+
facebot: Facebook Bot
|
77
|
+
feedburner: RSS bot
|
78
|
+
feedfetcher-google: Google Feedfetcher
|
79
|
+
findxbot: Findxbot
|
80
|
+
flipboardproxy: FlipboardProxy
|
81
|
+
friendfeedbot: FriendFeed
|
82
|
+
fyrebot: Fyrebot
|
83
|
+
garlik: GarlikCrawler
|
84
|
+
genieo: Genieo Web filter bot
|
85
|
+
germcrawler: GermCrawler
|
86
|
+
getprismatic.com: getprismatic.com
|
87
|
+
gigabot: Gigabot spider
|
88
|
+
gimme60bot: Gimme60 (gimme60.com)
|
89
|
+
gimmeusabot: Gimme60 (gimme60.com)
|
90
|
+
go http package: Go http library
|
91
|
+
go-http-client: Go http client
|
92
|
+
google page speed insights: Google Page Speed Insights
|
93
|
+
google web preview: Google Instant Previews crawler
|
94
|
+
google-site-verification: Google Site Verification
|
95
|
+
google-structured-data-testing-tool: Google Structured Data Testing Tool
|
96
|
+
google-structureddatatestingtool: Google Structured Data Testing Tool
|
97
|
+
google-xrawler: Google Shopping
|
98
|
+
googlebot: Google Bot
|
99
|
+
googleimageproxy: Google Image Proxy
|
100
|
+
googlestackdrivermonitoring-uptimechecks: Google Stackdriver Monitoring - Uptime Checks
|
101
|
+
grapeshotcrawler: GrapeshotCrawler
|
102
|
+
gravitybot: Gravity Bot
|
103
|
+
hatena::bookmark: Hatena::Bookmark
|
104
|
+
heritrix: heritrix
|
105
|
+
https://developers.google.com/+/web/snippet: Google+ Snippet Fetcher
|
106
|
+
httrack: HTTrack
|
107
|
+
hubspot: HubSpot
|
108
|
+
ia_archiver: Internet Archive (WayBackMachine)
|
109
|
+
icoreservice: iCoreService
|
110
|
+
idmarch: idmarch.org/bot.html
|
111
|
+
implisensebot: ImplisenseBot
|
112
|
+
inagist: URL resolver
|
113
|
+
insieve: Insieve Bot
|
114
|
+
insitesbot: Insitesbot
|
115
|
+
instapaper: Instapaper
|
116
|
+
istellabot: IstellaBot
|
117
|
+
jaunt: Jaunt - Java Web Scraping & JSON Querying
|
118
|
+
jetslide: Jetslide
|
119
|
+
jobseeker: jobseeker.com.au/bot.html
|
120
|
+
jooble: Jooble
|
121
|
+
js-kit: URL resolver
|
122
|
+
kemvibot: Kemvi
|
123
|
+
kimengi: Kimengi Bot
|
124
|
+
knows.is: knows.is
|
125
|
+
kojitsubot: Kojitsubot
|
126
|
+
komodiabot: KomodiaBot
|
127
|
+
kraken: kraken
|
128
|
+
laconica: Laconica
|
129
|
+
lijit crawler: Lijit
|
130
|
+
linkdexbot: Linkdex Bot
|
131
|
+
linkedinbot: LinkedIn
|
132
|
+
linkscrawler: LinksCrawler
|
133
|
+
linode: Linode Longview
|
134
|
+
lipperhey: Lipperhey
|
135
|
+
livelapbot: Livelapbot
|
136
|
+
loadtimebot: Load Time Bot
|
137
|
+
longurl: URL expander service
|
138
|
+
ltx71: ltx71.com
|
139
|
+
lumibot: Lumibot
|
140
|
+
magpie-crawler: magpie-crawler
|
141
|
+
mail.ru_bot: Mail.ru Bot
|
142
|
+
mappydata: Mappy
|
143
|
+
mastodon: Mastodon URL expander
|
144
|
+
mauibot: MauiBot
|
145
|
+
meanpathbot: meanpath
|
146
|
+
mediapartners-google: Google Adsense bot
|
147
|
+
megaindex.ru: MegaIndex
|
148
|
+
memorybot: mignify.com/bot.html
|
149
|
+
metauri: MetaURI
|
150
|
+
mfe_expand: Mcafee spider
|
151
|
+
mir web crawler: MIR web crawler
|
152
|
+
mj12bot: Majestic-12 spider
|
153
|
+
mojeekbot: Mojeek UK search crawler
|
154
|
+
ms search 6.0 robot: MS Search 6.0 Robot
|
155
|
+
msnbot-media: Microsoft media bot
|
156
|
+
msnbot: Microsoft bot
|
157
|
+
nerdybot: NerdyBot
|
158
|
+
netcraft: Netcraft
|
159
|
+
netstate: netEstate NE Crawler
|
160
|
+
netvibes: Personalized dashboard bot
|
161
|
+
netzcheckbot: netzcheck
|
162
|
+
newrelicmonitor: NewRelic monitor
|
163
|
+
newrelicpinger: NewRelicPinger
|
164
|
+
newsme: newsme
|
165
|
+
niki-bot: niki-bot
|
166
|
+
ning: NING - Yet Another Twitter Swarmer
|
167
|
+
nutch: Apache search spider
|
168
|
+
openhosebot: OpenHoseBot
|
169
|
+
orangebot: OrangeBot
|
170
|
+
paessler: paessler.com - PRTG Network Monitor
|
171
|
+
pagesinventory: pagesinventory.com
|
172
|
+
panopta: Monitoring service
|
173
|
+
paperlibot: PaperLi
|
174
|
+
peerindex: peerindex
|
175
|
+
percolatecrawler: PercolateCrawler
|
176
|
+
perfectmarketkwtbot: PerfectMarket
|
177
|
+
phantomjs: PhantomJS
|
178
|
+
pingdom: Pingdom monitoring
|
179
|
+
pinterest: Pinterest
|
180
|
+
plukkie: botje.com/plukkie.htm
|
181
|
+
pr-cy.ru: PR-CY.RU
|
182
|
+
privacyawarebot: PrivacyAwareBot
|
183
|
+
proximic: Proximic Spider
|
184
|
+
psbot-page: Picsearch
|
185
|
+
pu_in: Pu_iN Crawler
|
186
|
+
publiclibraryarchive.org: publiclibraryarchive.org
|
187
|
+
pycurl: Python http library
|
188
|
+
python-httplib2: Python-httplib2
|
189
|
+
python-requests: Python http library
|
190
|
+
python-urllib: Python http library
|
191
|
+
queryseeker: QuerySeekerSpider
|
192
|
+
quick-crawler: Quick-Crawler
|
193
|
+
quicklook: QuickLook
|
194
|
+
re-animator: Domain Re-Animator Bot
|
195
|
+
readability: Readability
|
196
|
+
rebelmouse: RebelMouse
|
197
|
+
redditbot: Reddit Bot
|
198
|
+
relateiq: RelateIQ
|
199
|
+
riddler: Riddler Bot
|
200
|
+
rogerbot: SeoMoz spider
|
201
|
+
rssmicro: RSS/Atom Feed Robot (rssmicro.com)
|
202
|
+
scouturlmonitor: ScoutURLMonitor
|
203
|
+
scrapy: Scrapy
|
201
204
|
screaming frog seo spider: Screaming Frog SEO Spider
|
202
|
-
searchmetricsbot:
|
203
|
-
semanticbot:
|
204
|
-
semrushbot:
|
205
|
-
seo-audit:
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
slack-imgproxy:
|
219
|
-
slack-linkexpanding:
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
205
|
+
searchmetricsbot: SearchmetricsBot
|
206
|
+
semanticbot: Semanticbot
|
207
|
+
semrushbot: SEO analysis bot
|
208
|
+
seo-audit: seo-audit-check-bot
|
209
|
+
seobilitybot: SeobilityBot
|
210
|
+
seodiver: SEOdiver
|
211
|
+
seokicks: SEOKicks
|
212
|
+
seznambot: SeznamBot
|
213
|
+
shopwiki: ShopWiki
|
214
|
+
shortlinktranslate: Link shortener
|
215
|
+
showyoubot: Showyou iOS app spider
|
216
|
+
siege: Joe Dog Siege
|
217
|
+
sistrix: SISTRIX
|
218
|
+
sitecheck: SiteCheck sitecrawl
|
219
|
+
siteuptime: Site monitoring services
|
220
|
+
skypeuripreview: SkypeUriPreview
|
221
|
+
slack-imgproxy: Slack Image Proxy
|
222
|
+
slack-linkexpanding: Slack Link Expanding
|
223
|
+
slack: Slack Link Expanding
|
224
|
+
slackbot: Slackbot
|
225
|
+
slurp: Yahoo spider
|
226
|
+
smtbot: SimilarTech
|
227
|
+
snapchat: Snapchat
|
228
|
+
socialrank: SocialRankIOBot
|
229
|
+
sogou: Chinese search engine
|
230
|
+
spbot: OpenLinkProfiler
|
231
|
+
spinn3r: Spinn3r aggregator
|
232
|
+
sputnikbot: SputnikBot
|
233
|
+
squider: Squider
|
234
|
+
statuscake: StatusCake
|
235
|
+
stripe: Stripe
|
236
|
+
swiftbot: Swiftype Bot
|
237
|
+
tangibleebot: TangibleeBot
|
238
|
+
teeraid: TeeRaidBot
|
239
|
+
test certificate info: C http library?
|
240
|
+
the knowledge ai: Knowledge AI Bot
|
241
|
+
tineye: TinEye Bot
|
242
|
+
traackr: Traackr Bot
|
243
|
+
trendictionbot: Trendiction Search
|
244
|
+
trendsmap: Trendsmap Resolver
|
245
|
+
turnitinbot: TurnitinBot
|
246
|
+
tweetedtimes: The Tweeted Times
|
247
|
+
tweetmemebot: TweetMeMe Crawler
|
248
|
+
twikle: Social web search bot
|
249
|
+
twitjobsearch: TwitJobSearch
|
250
|
+
twitmunin: Twitmunin
|
251
|
+
twitterbot: Twitter URL expander
|
252
|
+
twurly: Twurly
|
253
|
+
typhoeus: Typhoeus
|
254
|
+
umbot: uberMetrics
|
255
|
+
unwindfetch: Gnip
|
256
|
+
updown: Updown.io monitor
|
257
|
+
uptimerobot: Uptime Robot
|
258
|
+
vagabondo: Vagabondo
|
259
|
+
vb project: Visual Basic
|
260
|
+
vigil: Vigil
|
261
|
+
vkshare: VKontake Sharer
|
262
|
+
voilabot: VoilaBot
|
263
|
+
vrcrawler: Venture Radar
|
264
|
+
wasalive-bot: Wasalive Bots
|
265
|
+
watchsumo: WatchSumo
|
266
|
+
wbsearchbot: Ware Bay Best Buys
|
267
|
+
webceo: online-webceo-bot
|
268
|
+
webscout: Webscout
|
269
|
+
wesee: WeSEE
|
270
|
+
wget: wget unix CLI http client
|
271
|
+
whatsapp: WhatsApp
|
272
|
+
wikido: WikiDo
|
273
|
+
woorank: WooRank
|
274
|
+
wordpress: WordPress spider
|
275
|
+
woriobot: woriobot
|
276
|
+
wormly: WormlyBot
|
277
|
+
wotbox: Wotbox
|
278
|
+
xenu link sleuth: Xenu Link Sleuth
|
279
|
+
xing-contenttabreceiver: Xing bot
|
280
|
+
xovibot: XoviBot
|
281
|
+
yacybot: YaCy
|
282
|
+
yahoo-ad-monitoring: Yahoo Ad monitoring
|
283
|
+
yandex: Yandex
|
284
|
+
yanga: Yanga WorldSearch Bot
|
285
|
+
yeti: Naver Corp
|
286
|
+
yourls: YOURLS
|
287
|
+
zabbix: Zabbix
|
288
|
+
zelist.ro: feed parser
|
289
|
+
zibb: ZIBB spider
|
290
|
+
zitebot: Zite
|
291
|
+
zoombot: ZoomBot
|
292
|
+
zoominfobot: ZoominfoBot
|
293
|
+
zyborg: Zyborg
|
288
294
|
|
289
295
|
# Generic lib user agents go here.
|
290
|
-
eventmachine httpclient:
|
291
|
-
go 1.1 package http:
|
292
|
-
htmlparser:
|
293
|
-
http_request2:
|
294
|
-
httpclient:
|
295
|
-
jakarta commons:
|
296
|
-
java:
|
297
|
-
libwww-perl:
|
298
|
-
lwp-trivial:
|
299
|
-
ruby:
|
296
|
+
eventmachine httpclient: Ruby http library
|
297
|
+
go 1.1 package http: Go 1.1 package http
|
298
|
+
htmlparser: HTMLParser
|
299
|
+
http_request2: HTTP_Request2
|
300
|
+
httpclient: HTTPClient
|
301
|
+
jakarta commons: Jakarta Commons HttpClient
|
302
|
+
java: Generic Java http library
|
303
|
+
libwww-perl: Perl client-server library
|
304
|
+
lwp-trivial: Another Perl library
|
305
|
+
ruby: Ruby
|