0 0

java抓取雪球数据时连接老是失败,不知道是否被屏蔽还是参数不对25

尝试了好多参数,都是一样的 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
2014年12月01日 19:09

1个答案 按时间排序 按投票排序

0 0

采纳的答案

换htmlunit试试,设置一个用户,模拟一个浏览器

2014年12月03日 16:07

相关推荐

    java抓取网站数据

    无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是十分必要的。本篇文章将详细介绍如何使用Java语言抓取51job人才网上的Java职位需求数据。 #### 二、准备工作 在开始抓取之前,需要对...

    Java抓取网页数据Demo

    本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...

    java网页抓取数据

    在抓取数据时,务必遵守网站的robots.txt文件规定,尊重网站的爬虫政策,并避免过于频繁的请求,以免对服务器造成负担。此外,考虑到反爬策略,可能需要设置User-Agent,处理验证码,甚至模拟登录。 最后,数据抓取...

    java抓取网页数据

    在“java抓取网页数据”这个主题中,我们将深入探讨如何利用Java来抓取并处理互联网上的信息。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,...

    Java抓取https网页数据

    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网页抓取数据

    Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...

    java网络爬虫抓取网页数据

    Java网络爬虫是一种自动化程序,用于从互联网上抓取大量数据。它的工作原理是模拟浏览器发送HTTP请求到服务器,接收响应,并解析返回的HTML或XML文档以提取所需信息。在这个过程中,HttpClient是一个常用的Java库,...

    java抓取任何指定网页的数据

    ### Java抓取任何指定网页的数据 #### 知识点概览 本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据...

    java抓取网页数据实现

    在IT行业中,网络数据抓取是一项重要的技能,特别是在大数据分析、搜索引擎优化(SEO)和市场研究等领域。Java作为一门广泛使用的编程语言,提供了强大的工具和库来帮助开发者抓取和处理网页数据。以下是对"java抓取...

    Java实现网页抓取

    在IT行业中,网页抓取是一项基础且重要的技能,它允许我们自动地从互联网上获取大量信息,进行数据分析、搜索引擎优化、市场研究等用途。在这个Java实现网页抓取的项目中,我们将探讨如何利用Java编程语言来抓取网页...

    java httpclient 抓取 数据 和jar 包

    在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...

    java网页数据抓取源代码

    java抓取网页数据,主要用于抓取手机号和身份证查询网站的数据。

    java爬虫抓取网页数据教程.pdf

    本文是一份关于使用Java语言进行网页数据抓取的教程,主要介绍了使用Apache HttpClient这个库来完成网络请求和数据获取的操作。Apache HttpClient是一个支持HTTP协议的客户端工具,被广泛应用于Java爬虫开发中,帮助...

    java解析html抓取网站数据采集网站信息

    在IT行业中,网络数据采集是一项重要的技能,尤其对于数据分析、市场研究、搜索引擎优化等领域来说更是不可或缺。本篇文章将深入探讨如何使用Java语言解析HTML并抓取网站数据,从而实现高效的信息采集。 首先,我们...

    java爬虫抓取城市数据

    java爬虫抓取城市数据,数据抓取后直接持久化到数据库当中。博客地址http://blog.csdn.net/qq_23994787/article/details/78107890 如果没有积分的话,在主页给博主发邮件获取。

    java抓取数据包源代码Jpcap

    Java抓取数据包源代码Jpcap是一种在Java平台上实现的数据包捕获和分析的工具。Jpcap库为开发者提供了强大的功能,可以用来获取网络层的数据包信息,包括IP、TCP、UDP、ICMP等协议的数据包。它是Java版的libpcap库,...

    java利用htmlparser抓取网页数据

    本篇将重点讲解如何利用HTMLParser库在Java中抓取网页数据。 HTMLParser是Java的一个开源库,专门用于解析HTML文档,提取其中的数据。它的设计目标是简化HTML解析过程,即使面对不规范的HTML代码也能有效地处理。...

    java抓取网站数据[参考].pdf

    无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是极其有用的。本文将以抓取“51job”网站上的Java职位需求为例,详细介绍使用Java进行网站数据抓取的技术细节。 #### 二、准备工作 在...

    java抓取网站数据.pdf

    无论是进行市场调研、竞品分析还是数据挖掘,掌握如何使用Java来抓取数据都是极其有用的。本文将以抓取“51job”网站上的Java职位需求为例,详细介绍使用Java进行网站数据抓取的技术细节。 #### 二、准备工作 在...

    爬虫抓取雪球网用户动态(Tweets)作者 Runsen 代码可用

    爬虫抓取雪球网用户动态(Tweets),接口:https://xueqiu.com/v4/statuses/user_timeline.json #### 使用说明 1. 使用前对脚本关键位置进行如下修改: 打开浏览器并登录雪球网账号,获取cookie并替换代码中的...

Global site tag (gtag.js) - Google Analytics