尝试了好多参数,都是一样的 Server returned HTTP response code: 400 for URL,不知道是不是雪球有限制,但是对照浏览器的请求,一模一样的做了设置也不行,多谢!
也用jsoup做同样的事情,还是同样的错误。
Java代码 收藏代码
package com.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
public class test {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException,
JSONException {
URL u = new URL(url);
URLConnection uc = (HttpURLConnection)u.openConnection();
uc.setRequestProperty("X-Requested-With","XMLHttpRequest");
uc.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER");
// give it 15 seconds to respond
uc.setReadTimeout(15*1000);
uc.connect();
InputStream is = uc.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is,
Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 设置代理
System.getProperties().setProperty("proxySet", "true");
System.getProperties().setProperty("http.proxyHost", "cn-proxy.xxx.com");
System.getProperties().setProperty("http.proxyPort", "80");
JSONObject json = readJsonFromUrl("http://xueqiu.com/stock/cata/stocklist.json?page=1&size=90&order=desc&orderby=name&exchange=CN&industry=%E5%9B%9E%E8%B4%AD&flag=1&_=1417428721184");
System.out.println(json.toString());
}
}
引用
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 400 for URL: http://xueqiu.com/stock/cata/stocklist.json?page=1&size=90&order=desc&orderby=name&exchange=CN&industry=%E5%9B%9E%E8%B4%AD&flag=1&_=1417428721184
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1241)
at com.test.test.readJsonFromUrl(test.java:37)
at com.test.test.main(test.java:54)
这个url返回的是一个json文件,内容大概如下,具体可以点击链接查看:
Json代码 收藏代码
{"count":{"count":19.0},"success":"true","stocks":[{"symbol":"SZ395032","code":"395032","name":"债券回购","pettm":"","volume":"395277740","hasexist":"false","marketcapital":"0.0","current":"0.0","percent":"0.0","change":"0.0","high":"0.0","low":"0.0","high52w":"0.0","low52w":"0.0","trading_date":"","trading_days":"","actual_date":"","actual_days":"","net_profit":"","net_profit_day":"","net_profit_yield":"","net_cost":"","net_cost_day":"","net_cost_yield":""},{"symbol":"SH204001","code":"204001","name":"GC001","pettm":"","volume":"370904900","hasexist":"false","marketcapital":"0.0","current":"5.025","percent":"139.29","change":"2.925","high":"7.0","low":"4.0","high52w":"50.5","low52w":"0.1","trading_date":"","trading_days":"","actual_date":"","actual_days":"","net_profit":"","net_profit_day":"","net_profit_yield":"","net_cost":"","net_cost_day":"","net_cost_yield":""}]}
浏览器的heads:
Remote Address:146.56.234.217:80
Request URL:http://xueqiu.com/stock/cata/stocklist.json?page=1&size=90&order=desc&orderby=name&exchange=CN&industry=%E5%9B%9E%E8%B4%AD&flag=1&_=1417428721184
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Cookie:bid=2a0ffaa0c8c292e9752b4f52fa2e1a8e_i2zlirov; snbim_minify=true; last_account=35159618%40qq.com; xq_a_token=iXFl2kLorOVMsEDZ78hkeg; xq_r_token=Hs8CSFgNGhjhS6App0McWe; __utmt=1; Hm_lvt_1db88642e346389874251b5a1eded6e3=1417060711,1417146659,1417410467; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1417428721; __utma=1.1126280283.1417060711.1417420694.1417428549.11; __utmb=1.2.10.1417428549; __utmc=1; __utmz=1.1417410467.8.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Host:xueqiu.com
Proxy-Connection:keep-alive
Referer:http://xueqiu.com/hq
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER
X-Requested-With:XMLHttpRequest
相关推荐
无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是十分必要的。本篇文章将详细介绍如何使用Java语言抓取51job人才网上的Java职位需求数据。 #### 二、准备工作 在开始抓取之前,需要对...
本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...
在抓取数据时,务必遵守网站的robots.txt文件规定,尊重网站的爬虫政策,并避免过于频繁的请求,以免对服务器造成负担。此外,考虑到反爬策略,可能需要设置User-Agent,处理验证码,甚至模拟登录。 最后,数据抓取...
在“java抓取网页数据”这个主题中,我们将深入探讨如何利用Java来抓取并处理互联网上的信息。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,...
Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)
Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...
Java网络爬虫是一种自动化程序,用于从互联网上抓取大量数据。它的工作原理是模拟浏览器发送HTTP请求到服务器,接收响应,并解析返回的HTML或XML文档以提取所需信息。在这个过程中,HttpClient是一个常用的Java库,...
### Java抓取任何指定网页的数据 #### 知识点概览 本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据...
在IT行业中,网络数据抓取是一项重要的技能,特别是在大数据分析、搜索引擎优化(SEO)和市场研究等领域。Java作为一门广泛使用的编程语言,提供了强大的工具和库来帮助开发者抓取和处理网页数据。以下是对"java抓取...
在IT行业中,网页抓取是一项基础且重要的技能,它允许我们自动地从互联网上获取大量信息,进行数据分析、搜索引擎优化、市场研究等用途。在这个Java实现网页抓取的项目中,我们将探讨如何利用Java编程语言来抓取网页...
在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...
java抓取网页数据,主要用于抓取手机号和身份证查询网站的数据。
本文是一份关于使用Java语言进行网页数据抓取的教程,主要介绍了使用Apache HttpClient这个库来完成网络请求和数据获取的操作。Apache HttpClient是一个支持HTTP协议的客户端工具,被广泛应用于Java爬虫开发中,帮助...
在IT行业中,网络数据采集是一项重要的技能,尤其对于数据分析、市场研究、搜索引擎优化等领域来说更是不可或缺。本篇文章将深入探讨如何使用Java语言解析HTML并抓取网站数据,从而实现高效的信息采集。 首先,我们...
java爬虫抓取城市数据,数据抓取后直接持久化到数据库当中。博客地址http://blog.csdn.net/qq_23994787/article/details/78107890 如果没有积分的话,在主页给博主发邮件获取。
Java抓取数据包源代码Jpcap是一种在Java平台上实现的数据包捕获和分析的工具。Jpcap库为开发者提供了强大的功能,可以用来获取网络层的数据包信息,包括IP、TCP、UDP、ICMP等协议的数据包。它是Java版的libpcap库,...
本篇将重点讲解如何利用HTMLParser库在Java中抓取网页数据。 HTMLParser是Java的一个开源库,专门用于解析HTML文档,提取其中的数据。它的设计目标是简化HTML解析过程,即使面对不规范的HTML代码也能有效地处理。...
无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是极其有用的。本文将以抓取“51job”网站上的Java职位需求为例,详细介绍使用Java进行网站数据抓取的技术细节。 #### 二、准备工作 在...
无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是极其有用的。本文将以抓取“51job”网站上的Java职位需求为例,详细介绍使用Java进行网站数据抓取的技术细节。 #### 二、准备工作 在...
java抓取微信公众号最近10篇文章,基于微信搜狗搜索实现。java源码.git 仓库 http://git.oschina.net/hcxy/WechatSpider