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试试
在上面的代码中加入

[color=red]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")[/color];//设置信息

然后再提交就行了。。这个网站是通过判断user-agent来实现是不是正常的访问.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值