browser 3.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|