Java 获得网页源代码和模拟浏览器请求

直接附上代码,copy直接运行

package com.sh.Browser;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
public class GetPageContent {
 /**
  * @param args
  */
 public static void main(String[] args) {
  try {
   //http://api.map.baidu.com/geocoder/v2/?ak=KQiPaEKtT6xAoRKMbMLvBZze&callback=renderReverse&location=31.249161,121.487899&output=json&pois=1&qq-pf-to=pcqq.c2c
    URL u1=new URL("http://api.map.baidu.com/location/ip?ak=E4805d16520de693a3fe707cdc962045&ip=202.198.16.3&coor=bd09ll");
   
    
    URL url = new URL("http://api.map.baidu.com/location/ip?ak=E4805d16520de693a3fe707cdc962045&ip=183.56.167.29&coor=bd09ll");
    
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    InputStream in = null;
    in = url.openStream();
    String content = pipe(in,"utf-8");
    
    System.out.println(content);
    
    
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 static String pipe(InputStream in,String charset) throws IOException {
        StringBuffer s = new StringBuffer();
        if(charset==null||"".equals(charset)){
         charset="utf-8";
        }
        String rLine = null;
        BufferedReader bReader = new BufferedReader(new InputStreamReader(in,charset));
        PrintWriter pw = null;
        
  FileOutputStream fo = new FileOutputStream("../index.html");
  OutputStreamWriter writer = new OutputStreamWriter(fo, "utf-8");
  pw = new PrintWriter(writer);
        while ( (rLine = bReader.readLine()) != null) {
            String tmp_rLine = rLine;
            int str_len = tmp_rLine.length();
            if (str_len > 0) {
              s.append(tmp_rLine);
              pw.println(tmp_rLine);
              pw.flush();
            }
            tmp_rLine = null;
       }
        in.close();
        pw.close();
        return s.toString();
 }
}
时间: 2024-08-25 10:31:17

Java 获得网页源代码和模拟浏览器请求的相关文章

java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)

项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; 2 3 import java.io.BufferedReader; 4 import java.io.DataOutputStream; 5 import java.io.InputStreamReader; 6 import java.net.HttpURLConnection; 7 impor

关于HttpClient模拟浏览器请求的参数乱码问题解决方案

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

关于HttpClient模拟浏览器请求的參数乱码问题解决方式

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------

Java 读取网页源代码

package com.sphere.service; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class QueryService { /** * 发起http get请

程序模拟浏览器请求及会话保持-python实现

python下读取一个页面的数据可以通过urllib2轻松实现请求 import urllib2 print urllib2.urlopen('http://www.baidu.com').read() 涉及到页面的POST请求操作的话需要提供头信息,提交的post数据和请求页面. 其中的post数据需要urllib.encode()一下,其实就是将字典转换成“data1=value1&data2=value2”的格式. import urllib import urllib2 HEADER =

nc模拟浏览器请求http

<渗 透测试完全初学者指南>的"6.5.1检测非标准端口"使用了nc手动发送http命令获取web的内容.依照这个例子是可以执行成功的,但按此例子的方法去apache发起请求则不能成功.如下: nc 172.28.128.35 80 GET / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Fri, 27 Dec 2019 03:08:49 GMT Server: Apache/2.4.6 (CentOS) Content-Length:

C# 模拟浏览器请求

public string getHtml(string Url, string type = "UTF-8")        {            try            {                System.Net.HttpWebRequest wReq = (HttpWebRequest)System.Net.HttpWebRequest.Create(Url);                wReq.UserAgent = "Mozilla/5.

基于nodejs模拟浏览器post请求爬取json数据

今天想爬取某网站的后台传来的数据,中间遇到了很多阻碍,花了2个小时才请求到数据,所以我在此总结了一些经验. 首先,放上我所爬取的请求地址http://api.chuchujie.com/api/?v=1.0: 下面我们开始爬取数据. 一.写一个基于nodejs的爬虫 1.引入所需模块 这里需要引入http模块(nodejs用来向浏览器发送http请求的模块)和querystring模块(把前台传过来的对象形式的参数转化成字符串形式): var http = require("http"

Python模拟浏览器实现网页访问

模拟浏览器请求数据: import socket # 创建TCP链接 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # DNS 解析和链接HTTP服务器 tcp_socket.connect(("www.qq.com", 80)) # 编写请求头, 发送HTTP请求报文 # 请求行 request_line = "GET / HTTP/1.1\r\n" # 请求头,设置请求域名 requ