我发现这很奇怪,我无法在任何地方找到一个好的PHP函数来进行用户代理字符串的智能解析?用Google搜索约20分钟.
我已经拥有了这个字符串,我只需要一些可以将其删除并给我至少浏览器/ ver/os的东西.
知道一个好的片段吗?
完全像听起来..
有一些神奇而简单的方式可以说:
if (user agent is iOS) {
if (browserRatio >=1.5) {
$container.css('min-height', '360px');
} else {
$container.css('min-height', '555px');
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个Java模块,User-Agent从最终用户的浏览器接收字符串需要稍微不同的行为取决于浏览器的类型,浏览器的版本,甚至可能是操作系统.如:{"FireFox", "7.0", "Win7"},{"Safari", "3.2", "iOS9"}
我知道User-Agent由于插件安装不同等原因,字符串的格式可能因完全相同的配置而异.
我的问题:
User-Agent井的结构是否定义明确?如果是的话 - 我在哪里可以找到它?(根据我对RFC的理解,这里没有太多的标准化).No- 是否有正确的方法来解析它以获得我需要的信息?User-Agent字符串之外,还有更好的方法来获取我需要的信息吗?重要提示 - 我说的是一个网络应用程序,因此我的数据收集能力仅限于此javascript.
有没有办法使用Javascript检测移动设备?此外,我研究了这样一种XML,其中包含可以帮助识别移动手持设备的用户代理.
我正在使用jquery来构建对Twitter Search API的请求.我正在使用jsonp,这是跨域请求所需要的.但是,Twitter API指定您应为这些请求设置唯一的User-Agent,如果不这样做,则会限制您的请求.问题是,我认为无法通过jquery设置此标头.
这是我正在使用的代码:
$.ajax({
url: 'http://search.twitter.com/search.json',
dataType: 'jsonp',
type: 'get',
data: { q: 'twitter' },
success: function(data) {
alert(data.results);
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试过使用beforeSend方法,但看起来这个事件没有被触发.任何人都可以想出任何解决这个问题的方法吗?
谢谢.
我试图通过向项目配置文件添加额外的行来覆盖我的crawlspider的用户代理.这是代码:
[settings]
default = myproject.settings
USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
[deploy]
#url = http://localhost:6800/
project = myproject
Run Code Online (Sandbox Code Playgroud)
但是当我对自己的网络运行爬虫时,我注意到蜘蛛没有拿起我的自定义用户代理,而是默认的"Scrapy/0.18.2(+ http://scrapy.org)".任何人都可以解释我做错了什么.
注意:
scrapy crawl myproject.com -o output.csv -t csv -s USER_AGENT="Mozilla...."
Run Code Online (Sandbox Code Playgroud)
(2).当我从配置文件中删除"default = myproject.setting"行并运行scrapy crawl myproject.com时,它说"找不到蜘蛛......",所以我觉得在这种情况下不应该删除默认设置.
非常感谢您的帮助.
显然,IE11没有用户代理样式<main>,因此没有display: block;.为什么没有用户代理样式?这是一个错误还是故意的?
添加display: block;到主要元素就足够了.
html html5 internet-explorer user-agent internet-explorer-11
我在使用一台远程服务器时遇到问题.我的应用程序使用[NSData initWithContentsOfURL:]方法向服务器发出请求,作为响应,我得到了我打开的网站的网址UIWebView.
问题是这些请求具有不同的User-Agent,并且服务器无法正确地为我服务,因为它期望我使用相同的User-Agent发送所有请求.我知道如何更改用户代理(例如,在UIWebView(iPhone SDK)中更改用户代理)但我真正想要的是以某种方式获取UIWebView用户代理并将其设置为[NSData initWithContentsOfURL:]以避免服务器端出现问题
我的印象是,浏览器(如Safari,Chrome和Firefox)中的用户代理样式表是浏览器内部的,无法直接修改(而是需要覆盖样式属性).
由于包括Mozilla在内的各种网站,Webkit和Mozilla 的box-sizing属性的默认值是"content-box",我也感觉不到.
我在各种浏览器中查看的相当简单的虚拟页面上测试了这个.
我的问题是,在我们的生产应用程序的两个页面上,默认属性是不同的,我们无法弄清楚为什么会这样.
在一页中,我们在Web Inspector或控制台中看到了"border-box"的box-sizing属性.它被分配给CSS选择器输入:not([type ="image"]),textarea.
在另一页上,没有提到Web Inspector或控制台中的box-sizing属性.
有没有人知道是否有某种方法直接影响特定页面的用户代理样式表中的box-sizing定义?也许有一个图书馆这样做?我们在应用程序中使用prototype.js和swfobject.js ......
更新:如果我在我的Web应用程序和每个"虚拟"页面中几乎每个页面都不清楚,我在box-sizing属性上测试过具有默认的"content-box"值.出于某种原因,我的Web应用程序中的一个特定页面在Web检查器中显示用户代理样式表(浏览器用于其默认值的样式表)已将该属性设置为"border-box".我无法为我的生活找出原因.我正在寻找可能导致Firefox更改其属性的默认值的任何内容.
我注意到我的手机上的Chrome(64.0.3282.137)(OnePlus 3,Android 8.0.0)在请求网页时发送的用户代理略有不同,与通过ajax请求相反.
请求网页时会发送此用户代理:
Mozilla/5.0 (Linux; Android 8.0.0; ONEPLUS A3003 Build/OPR6.170623.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36
发送此用户代理进行ajax调用,并在调用时返回navigator.userAgent:
Mozilla/5.0 (Linux; Android 8.0.0; Build/OPR6.170623.013) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36
区别: ONEPLUS A3003
你能告诉我为什么模型包含在本机调用中,而不是在ajax调用中吗?
附加信息:启用"请求桌面站点"功能后,用户代理就会
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Safari/537.36出现这两种情况.
user-agent ×10
javascript ×2
jquery ×2
parsing ×2
ajax ×1
android ×1
border-box ×1
css ×1
html ×1
html5 ×1
http-headers ×1
if-statement ×1
ios ×1
ios4 ×1
iphone ×1
java ×1
jsonp ×1
mobile ×1
php ×1
python ×1
scrapy ×1
uiwebview ×1
web-crawler ×1