Java爬虫系列之三模拟浏览器【模块浏览OSChina网站】
来源:互联网 发布:win10系统优化固态 编辑:程序博客网 时间:2024/06/05 23:58
第一节的学习使得我们学会使用HttpClient请求网页的基本方法;第二节进一步学习了Jsoup从网页中解析出所需要的内容。但在请求时,我们仍可能遇到目标网址没有错,但就是请求得不到响应的情况,比如OSChina、CSDN等网址,因此这里必须伪装成浏览器才可以进行正常的访问。
模拟浏览器在代码的实现层,就是给请求加上Header,那么如何看应该封装的Header内容呢?运用浏览器自带的开发者选项功能(F12),查看Network下的目标网址对应的User-Agent即可:
然后在代码的Header中加入User-Agent即可:
import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import java.io.IOException;public class OSChina { public static void main(String[] args){ //创建HttpClient CloseableHttpClient httpClient = HttpClients.createDefault(); //目标网址 String url = "http://www.oschina.net/"; //创建请求方法 HttpGet httpGet = new HttpGet(url); //设置Header模拟浏览器行为 httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"); try { //发送请求,收取响应 CloseableHttpResponse httpResponse = httpClient.execute(httpGet); if(httpResponse.getStatusLine().getStatusCode() == 200){ //解析响应 String entity = EntityUtils.toString(httpResponse.getEntity()); System.out.println(entity); } EntityUtils.consume(httpResponse.getEntity()); httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Java爬虫系列之三模拟浏览器【模块浏览OSChina网站】
- python爬虫2之简单模拟浏览器
- Python 爬虫之 selenium 爬虫,模拟浏览器爬取天猫信息
- Java爬虫系列之四模拟登录【模拟登录人人网】
- 爬虫三部曲之(三):Python模拟登录云笔记网站并爬取笔记内容
- Python爬虫之模拟CSDN网站登录
- Python爬虫Requests模块系列之六
- 使用java-Selenium实现控制浏览器浏览网站
- Python3.5爬虫urllib系列之三
- 网络爬虫系列之三:简单爬虫初步
- java中模拟浏览器访问网页(三)
- [Java爬虫HttpClient_Demo2模拟浏览器并抓取Web图片]
- JAVA爬虫初识之模拟登录
- php实例三之网站浏览量统计
- 爬虫系列三:开发爬虫
- Python爬虫模拟真实登录案例系列之十二
- python3版本爬虫系列之模拟登陆CSDN
- Python爬虫正则表达式和re模块系列之七
- 面试总结
- java根据当前时间获取前一个月的日期组成List
- Linux下的基本网络配置
- Android 的约定命名
- Cow Bowling
- Java爬虫系列之三模拟浏览器【模块浏览OSChina网站】
- ACM算法-时间复杂度分析(2.最坏,平均,最好时间复杂度分析)
- 有向加权图的深度优先遍历—C
- Redirect traffic to loopback
- php类实现数据分页操作
- (9)session
- k-means聚类算法的详解和实现
- Spring Boot 入门教程-入门程序
- Linux常用命令整理