在做爬虫的时候发现如果不设置请求头的话,每次httpclient发起的请求都是响应移动端板式的,无法抓取响应的内容,后面查了一下才知道,需要重新设置请求头,让服务端误以为是某个真实浏览器发起的请求:

HttpClient httpClient = new DefaultHttpClient();

//創建一個httpGet方法

HttpGet httpGet = new HttpGet("xxxxx");

//設置httpGet的头部參數信息

httpGet.setHeader("Accept", "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

httpGet.setHeader("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");

httpGet.setHeader("Accept-Encoding", "gzip, deflate");

httpGet.setHeader("Accept-Language", "zh-cn,zh;q=0.5");

httpGet.setHeader("Connection", "keep-alive");

httpGet.setHeader("Cookie", "");

httpGet.setHeader("Host", "");

httpGet.setHeader("refer", "");

httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");

最基本的爬虫就用了几句代码就完成了,附上爬虫代码,主要是用到HttpClient、webmagic、jsoup

public class WebMagicService {

public static void main(String[] args) throws Exception{

HttpClient httpClient = HttpClients.createDefault();

HttpGet httpGet = new HttpGet("http://bbs.e763.com/");

httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");

HttpResponse response = httpClient.execute(httpGet);

String contents = EntityUtils.toString(response.getEntity(),"gbk");//utf-8

Document document = Jsoup.parse(contents);

Elements elements = document.select("div#hza11 div.boxtxthot a");

// System.out.println(contents);

for (Element element : elements) {

System.out.println(element.text()+ " : " + element.attr("href"));

}

}

}

爬取内容如下:

三大运营商9月1日起取消漫游费 用户无需申请自动生效 : viewthread.php?tid=907629

2年前月桂湖弃婴案:被蚂蚁咬过的孩子, 精神发育迟滞 : viewthread.php?tid=907607

.....

java 爬虫身份设定_Java爬虫中HttpClient请求头的设置相关推荐

  1. python request 请求头_python爬虫请求头如何设置?

    一.requests设置请求头: import requests url="http://www.targetweb.com" headers={ 'Accept':'text/h ...

  2. php获取curl头_php中CURL请求头和响应头获取方法

    本文主要和大家分享php中CURL请求头和响应头获取方法,希望能帮助到大家. 1.从CURL中获取响应头$oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网 ...

  3. java爬虫知乎_java爬虫进阶篇(半小时知乎两万推荐问题)

    上一篇写了一个简单的新浪新闻爬虫作为上手主要是用jsoup包来对url页面进行抓取到本地,并在本地进行数据的解析提取.这里就不重复叙述jsoup的用法了,百度一下基本一大片.看了网上大神们都有对知乎进 ...

  4. python爬虫与java爬虫的区别_java爬虫(一)主流爬虫框架的基本介绍

    (1).Scrapy: Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测 ...

  5. java 爬虫 获取京东_Java爬虫爬取京东

    需求分析 首先访问京东,搜索手机,分析页面,我们抓取以下商品数据: 商品图片.价格.标题.商品详情页 SPU和SKU 除了以上四个属性以外,我们发现上图中的苹果手机有四种产品,我们应该每一种都要抓取. ...

  6. 爬虫中 解决请求头中 encSecKey:6f112 SyntaxError: invalid syntax 问题

    最近在学习爬虫中总是遇到下面的问题,后来发现是两条语句之间没有加逗号,直接在网页复制(习惯不好)的问题 问题如下: 解决请求头中 "encSecKey":"6f112a1 ...

  7. Java私有方法解释_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  8. java 乱码 号处理器_java处理中日文字符串的乱码问题

    --杂言:前段时间在处理音频预览问题,详见关于audiojs的研究.期间,将远端的音频下载并缓存在本地过程中,涉及到java.io.*的几个操作,发生一些乱码问题. 我以前的处理是将本地的编码转换为U ...

  9. java切面获取reqiest,怎么在webflux切面中获取请求头.

    问题描述. 萌新在线踩坑.... 我需要在切面中获取当前用户的请求信息,比如请求头信息. 但是不能像mvc一样通过以下方式实现. @Autowired private HttpServletReque ...

最新文章

  1. 关于Python异常处理,你需要了解的知识点
  2. Android ndk使用
  3. MySQL导入冲突保留两者_面试被问MySQL 主从复制,怎么破?
  4. 域名自动跳转不搭建服务器,宝塔搭建的服务器WEB系统环境如果做域名301跳转
  5. java重入锁,再探JAVA重入锁
  6. 动手学PaddlePaddle(2):房价预测
  7. java stl分解_[STL训练]寻梦-题解(Java代码)极简思路
  8. 分布式SOA基础架构崭露头角
  9. 学习3D图形引擎中使用的基本数学
  10. pdf转换成ppt转换器免费版
  11. 前端实现成绩管理系统
  12. PPT母版和PPT模板
  13. android神器v2ex,这5个堪称神器的APP,用了让你爱不释手!
  14. Python调用百度API实现语音识别
  15. win10开始菜单没有反应
  16. XCOM 导入条目显示正在使用中解决方案
  17. guzzle/guzzle 日常使用
  18. 推荐一些python IDE(python编辑器)
  19. 京东2019春招编程题
  20. 教你如何屏蔽网通的域名纠错系统

热门文章

  1. JAVA——token理解
  2. java操作MongoDB,采用_id查询
  3. 国庆七天乐,写博也快乐之微信小程序天气预报+根据天气自动变换背景图实战(使用和风天气API)
  4. Java里面Random的用法_Java中Random的用法
  5. 你的交易系统有什么特别之处吗?
  6. 家园共育——托班宝宝入园早知道
  7. Linux开发板显示字库,linux追加中文字库,解决imagemagick 中文乱码的问题。
  8. 短信开发中的MT、MO是什么意思?
  9. UDF(PYTHON / JAVA)入门级开发
  10. css 更改所有text,CSS之cssText