`
gcgmh
  • 浏览: 354947 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

httpclient 设置user-agent

阅读更多
前些天在csdn上看到有人说dianping.com上的东西没法抓取,我就用htmlparser试了试,果然不行。看返回结果
Server returned HTTP response code: 500 for URL: http://www.dianping.com/shop/2212912
不能使用:然后想到换httpclient来试试:

HttpClient hc=new HttpClient();
GetMethod gm=new GetMethod("http://www.dianping.com/shop/1968937");
hc.executeMethod(gm);
System.out.print(gm.getResponseBodyAsString());

返回的数据:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>提示_大众点评网</title><style type="text/css">html{background:#f7f7f7;}body{background:#fff;color:#333;font-family:"MicrosoftYaHei","微软雅黑",Verdana,Arial;margin:2em auto 0 auto;width:700px;padding:1em 2em;-moz-border-radius:11px;-khtml-border-radius:11px;-webkit-border-radius:11px;border-radius:11px;border:1px solid #dfdfdf;}a{color:#2583ad;text-decoration:none;}a:hover{color:#d54e21;}h1{border-bottom:1px solid #dadada;clear:both;color:#666;margin:5px 0 5px 0;padding:0;padding-bottom:1px;}p{text-align:center;}sub{display:block;margin:0;padding:0;color:#aaa;font-size:11px;text-align:right;}</style></head><body><h1 id="logo" style="text-align: center"><img alt="dianping.com" src="http://i1.dpfile.com/s/img/simplelogo.gif" /></h1><p>对不起,您的访问存在某些问题。<br />如果您是正常访问,请与<a href="mailto:spam@dianping.com">spam@dianping.com</a>联系,并附上以下信息:<br /><textarea rows="10" cols="80">401
221.221.153.137
jakarta commons-httpclient/3.0</textarea></p><sub>401</sub></body></html>

大家可以把他复制到html看看效果,主要是提示我的浏览器错误:使用httpclient默认为jakarta commons-httpclient/3.0
我就换了user-agent试试
在上面的代码中加入

hc.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");//设置信息

然后再提交就行了。。这个网站是通过判断user-agent来实现是不是正常的访问.
分享到:
评论
1 楼 mypotatolove 2012-07-23  
我现在想做用HttpClient从微博中爬取微博动态,能不能跟我讲一下其中的原理和具体实现要做什么啊?

相关推荐

    user-agent大全

    ### User-Agent大全解析 在IT领域,特别是在Web开发与维护工作中,User-Agent(用户代理)字符串扮演着极其重要的角色。User-Agent是HTTP请求头的一部分,它携带了客户端(如浏览器或其他HTTP客户端)的信息,帮助...

    浅谈Okhttp去除请求头user-agent

    "浅谈Okhttp去除请求头user-agent" Okhttp是一个流行的Android网络请求库,它提供了一个简洁的API来发送HTTP请求。然而,在某些情况下,我们需要去除请求头中的User-Agent信息,以避免服务器端的检测或其他原因。本...

    httpclient-tutorial-simplified-chinese

    “User-Agent”描述了发起请求的客户端。 **1.1.4 HTTP 实体**:HTTP实体由实体头和可选的实体主体组成。实体头提供了关于实体主体的信息,例如其长度、编码方式等。实体主体则携带了实际的数据。 **1.1.5 确保低...

    user-agent(未解析)

    ### User-Agent(UA)概述 在互联网领域,User-Agent(简称UA)是HTTP请求头部中的一个字段,用于向服务器提供发起请求的客户端信息。UA字符串通常包含浏览器名称、操作系统、设备类型等信息,有助于服务器根据...

    useragent:为每个请求添加一个 `User-Agent` 标头

    去取用户代理 为每个请求添加一个User-Agent标头。安装 npm install --save go-fetch-useragent用法 var HttpClient = require('go-fetch');var useragent = require('go-fetch-useragent');HttpClient() .use...

    httpclient 4.5 所需的jar包 附带源码

    - 自定义请求头,如设置User-Agent、Cookie等。 - 实现HTTP连接管理,如设置连接超时、复用连接等。 - 配置SSL/TLS以实现安全的HTTPS通信。 - 处理文件上传和下载,利用httpmime库构造多部分请求。 - 使用commons-io...

    commons-httpclient-3.1.jar和commons-codec-1.3.jar

    4. **自定义请求头**:开发者可以方便地添加或修改HTTP请求头,如Cookie、User-Agent等。 5. **请求和响应处理**:库提供了丰富的API,可以方便地解析和操作HTTP响应,包括状态码、响应头和内容。 **Apache Commons...

    httpclient-4.5所需jar包

    2. 构建`HttpPost`对象,设置目标URL(京东登录接口)和请求头(可能包括User-Agent、Content-Type等)。 3. 如果登录需要表单数据,可以创建一个`List&lt;NameValuePair&gt;`,添加用户名、密码等参数,然后用`...

    HttpClient 4.0的post()方法4个关键“头信息”设置

    根据提供的代码片段和描述信息,我们可以看到在使用HttpClient进行POST请求时,设置了四个重要的HTTP头部信息:`Referer`、`Content-Type`、`Accept`和`User-Agent`。下面将详细介绍这四个头部信息的作用及如何正确...

    简单的HTTP功能监控功能(java httpclient-3.1)

    3. **设置请求头**:可以通过`.setRequestHeader`方法添加请求头,比如设置User-Agent或Accept-Type。 ```java getMethod.setRequestHeader("User-Agent", "Mozilla/5.0"); ``` 4. **执行请求**:使用`...

    HttpClient jar包下载

    5. **请求头**:HttpClient允许你添加自定义请求头,如设置User-Agent,Content-Type等。例如: ```java httpGet.setHeader("User-Agent", "MyApp/1.0"); ``` 6. **连接管理**:HttpClient提供了一种机制来管理...

    httpclient-jar.zip

    3. 设置请求头:例如,设置User-Agent、Accept-Type、Authorization等头信息。 4. 执行请求:调用HttpClient的execute方法,传入请求对象。 5. 处理响应:获取HttpEntity,从中读取响应内容,关闭连接。 HttpClient...

    httpclient-4.3.3+jsoup-1.7.3模拟登陆csdn

    HttpClient允许我们创建一个HttpURLConnection,设置请求头,比如User-Agent,以模拟浏览器行为。同时,我们需要处理登录页面可能存在的验证码或饼干(cookies),这些通常通过HttpClient的CookieStore来管理。 ...

    java实现httpClient样例

    3. **设置请求头**:你可以通过`setHeader`方法添加自定义请求头,例如设置User-Agent或者Content-Type: ```java httpPost.setHeader("Content-Type", "application/json"); httpPost.setHeader("User-Agent", ...

    HttpClient模拟http浏览器请求

    例如,设置User-Agent:`httpGet.setHeader("User-Agent", "Mozilla/5.0");` 4. **携带请求参数**:对于POST请求,我们可以通过`HttpPost`的`setEntity`方法传递参数。通常,我们会创建一个`StringEntity`或`...

    httpclient

    3. **模拟浏览器行为**:设置User-Agent,处理JavaScript,支持cookies,模仿真实用户的行为。 4. **反反爬策略**:应对网站的反爬机制,如设置代理IP,处理验证码,调整请求间隔等。 五、总结 HttpClient作为...

    Java网络通信之HttpClient

    3. **设置请求头**:如果需要,可以添加请求头,例如设置User-Agent: ```java httpGet.setHeader("User-Agent", "Mozilla/5.0"); ``` 4. **执行请求并获取响应**:然后,通过HttpClient执行请求,并获取...

    java动态提交网站httpclient

    通过设置`User-Agent`头,我们可以模拟不同的浏览器发送请求。 执行`httpClient.execute(httpPost)`后,我们获取了响应,可以检查状态码、读取响应体等。最后,记得关闭响应和HttpClient实例以释放资源。 然而,...

    java爬虫所需的httpclient-4.5等jar包

    例如,你可以通过设置User-Agent来模拟不同的浏览器行为,或者通过配置连接超时来避免因网络问题导致的长时间等待。 其次,HttpClient库支持SSL/TLS协议,这意味着它可以安全地与HTTPS站点进行通信。这对于爬取需要...

    HttpClient Https实战

    它支持设置各种HTTP头,如Cookie、User-Agent等,还能够处理重定向、超时、连接池等问题。此外,HttpClient还具有处理HTTPS协议的能力,可以处理SSL/TLS加密,确保数据在传输过程中的安全性。 在HTTPS实战中,首先...

Global site tag (gtag.js) - Google Analytics