标签: user-agent

解析HTTP用户代理字符串

解析Python中的User-Agent字符串以便可靠地检测的最佳方法是什么

  1. 浏览器
  2. 浏览器版本
  3. OS

或者也许是任何帮助库

python user-agent http http-headers

49
推荐指数
5
解决办法
3万
查看次数

如何检测Android浏览器的库存

导航到http://whatsmyuseragent.com/向我显示运行4.2.1的Galaxy Nexus上我的股票Android浏览器有用户代理

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
Run Code Online (Sandbox Code Playgroud)

此用户代理中没有任何内容允许我唯一地检测到它是一个Android浏览器.Chrome for Android应用程序至少具有androidUA功能.有什么方法可以让我发现Android应用程序的存量吗?

user-agent android android-browser

46
推荐指数
4
解决办法
8万
查看次数

更改WebBrowser控件的用户代理

我试图在Winforms应用程序中更改WebBrowser控件的UserAgent.

我已成功使用以下代码实现此目的:

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
    int dwOption, string pBuffer, int dwBufferLength, int dwReserved);

const int URLMON_OPTION_USERAGENT = 0x10000001;

public void ChangeUserAgent()
{
    List<string> userAgent = new List<string>();
    string ua = "Googlebot/2.1 (+http://www.google.com/bot.html)";

    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0);
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是这只能工作一次.当我尝试第二次运行ChangeUserAgent()方法时,它不起作用.它保持设置为第一个更改的值.这很烦人,我已经尝试了一切,但它不会改变不止一次.

有谁知道一种不同的,更灵活的方法?

谢谢

c# user-agent webbrowser-control winforms

44
推荐指数
3
解决办法
8万
查看次数

网站不接受wget用户代理标头

当我运行此命令时:

wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"  http://yahoo.com
Run Code Online (Sandbox Code Playgroud)

...我得到了这个结果(文件中没有其他内容):

<!-- hw147.fp.gq1.yahoo.com uncompressed/chunked Wed Jun 19 03:42:44 UTC 2013 -->
Run Code Online (Sandbox Code Playgroud)

但是当我wget http://yahoo.com--user-agent选择地运行时,我得到整页.

用户代理与我当前浏览器发送的标头相同.为什么会这样?有没有办法确保用户代理在使用wget时不会被阻止?

user-agent http wget

43
推荐指数
2
解决办法
9万
查看次数

自定义http用户代理字符串的最佳做法?

我正在开发一个使用HTTP与内部Web服务通信的应用程序.

是否有自定义用户代理字符串的"最佳实践",以便我可以在我的应用程序中添加一个好的?它是一个Python库,较低的传输是Python自己的httplib.用户代理字符串是否应该说明或其他什么?

user-agent web-services http

41
推荐指数
1
解决办法
2万
查看次数

如何使用apache http客户端库4.1设置自定义User-Agent?

如何使HTTPClient使用自定义User-Agent标头?

以下代码提交空用户代理.我错过了什么?

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

public class TestHTTP {

        public static void main(String[] args) throws ClientProtocolException, IOException {
        HttpGet request = new HttpGet("http://tool.keepmeapi.com/echo");

        HttpContext HTTP_CONTEXT = new BasicHttpContext();
        HTTP_CONTEXT.setAttribute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13");
        request.setHeader("Referer", "http://www.google.com");

        HttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(request, HTTP_CONTEXT);

        if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() >= 400) { …
Run Code Online (Sandbox Code Playgroud)

java user-agent apache-httpclient-4.x

41
推荐指数
3
解决办法
7万
查看次数

使用Python获取Wikipedia文章

我尝试使用Python的urllib获取维基百科文章:

f = urllib.urlopen("http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes")           
s = f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)

然而,而不是HTML页面,我得到以下响应:错误 - 维基媒体基金会:

Request: GET http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes, from 192.35.17.11 via knsq1.knams.wikimedia.org (squid/2.6.STABLE21) to ()
Error: ERR_ACCESS_DENIED, errno [No Error] at Tue, 23 Sep 2008 09:09:08 GMT 
Run Code Online (Sandbox Code Playgroud)

维基百科似乎阻止了不是来自标准浏览器的请求.

有谁知道如何解决这个问题?

python user-agent wikipedia urllib2 http-status-code-403

39
推荐指数
3
解决办法
3万
查看次数

为什么 Chrome 使用 sec-ch-ua: "\"Not\\A;Brand";v="99"?

我知道使用户代理提示更加模糊的部分目的是为了使浏览器指纹识别更加困难。

我自己的(Windows 桌面)Chrome 发送标头:

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
sec-ch-ua: "Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86"
sec-ch-ua-mobile: ?0
Run Code Online (Sandbox Code Playgroud)

我不明白的是:

  1. 为什么特别是字符串“Not A Brand”?还有其他人使用这个伪 UA 吗?这是某种玩笑吗?
  2. 为什么\"\\A;里面的字符串?我唯一的猜测是,这应该以某种方式与解析器混淆(就像 CSS 中的反 IE 黑客),但这似乎是一个相当奇怪的目的——而 IIRC,\A就是钟形字符。
  3. 鉴于它还发送user-agent具有特定版本号的完整标头,这应该如何实现用户代理提示歧义?
  4. 同时:为什么 Chrome 的用户代理还声称是 Mozilla、AppleWebKit 和 Safari?不是,而且这个user-agent字符串是 Chrome 特有的。它是否有来自其他浏览器的某种嵌入式组件?

user-agent privacy google-chrome client-hints

39
推荐指数
1
解决办法
2万
查看次数

有在线用户代理数据库吗?

你如何解析你的用户代理字符串?我想得到:

  • 浏览器
  • 浏览器版本
  • OS
  • 操作系统版本

来自用户代理字符串.我的应用程序是用perl编写的,之前使用的是HTTP :: BrowserDetect.它有点陈旧,不再维护.(编辑:它已被更新.)我与使用perl进行实际查找无关.

我得出的结论是,自动解析是一个失败的原因.我正在考虑编写一个crud类型的应用程序,向我展示一个未分类的UA列表并手动保持它们是最新的.

这样的资源是否已经存在,我可以利用?如果我可以进行HTTP调用以查找用户代理信息,那将是非常棒的.

谢谢!

user-agent web-services web-applications

37
推荐指数
2
解决办法
5万
查看次数

寻找Java用户代理字符串解析器

有没有人知道java中的一个很棒的库来解析用户代理字符串?我们写了一个自定义的,但这似乎是许多人的常见问题.我猜可以在某个地方找到一个好的图书馆.

例如,用户代理字符串......

"Mozilla/5.0(Windows; U; Windows NT 6.0; en-US)AppleWebKit/532.0(KHTML,如Gecko)Chrome/3.0.195.21 Safari/532.0"

...在我们的网站上使用Chrome加密宣告Windows Vista PC的到来.

我在python和ruby中看过库.在那里的任何东西?

java parsing user-agent

37
推荐指数
2
解决办法
2万
查看次数