JAVA爬取页面出现405错误

Lomon---- 2019-01-25 11:23:48
在做爬取留言的测试时,出来405,网页是:http://liuyan.people.com.cn/threads/list?fid=1079
在用开发工具看XHR有queryThreadList有完整的JSON数据,但直接访问http://liuyan.people.com.cn/threads/queryThreadsList?fid=1079&lastItem=0出现HTTP Status 405 – Method Not Allowed
源网页加载JSON数据:
Threads.initThreadsListPage();
代码如下:
url="http://liuyan.people.com.cn/threads/queryThreadsList?fid=1079&lastItem=0";
Document doc = Jsoup.connect(url).get();
System.out.println("url:"+url+" doc:"+doc);
希望牛人提供帮助,如何获取完整留言的JSON,谢谢!
JSON如下:
{"result":"success","responseData":[{"tid":5656180,"userId":1840290,"fid":1079,"typeId":6,"domainId":9,"topicId":0,"nickName":"x***","subject":"第二次:乐化农民建

以上JAVA如何POST或获取数据,谢谢!
...全文
679 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
110成成 2019-01-30
  • 打赏
  • 举报
回复
引用 6 楼 Lomon---- 的回复:
你看有时间吗?项目需要完整人民网的留言,做个JAVA定时采集器,如果能做的话我们可以沟通下, 你把联系方式发我邮箱lma11@163.com,谢谢!


这个有分页,自己写个循环,一直抓取,定时器都是现成的,没什么难的。。
Lomon---- 2019-01-29
  • 打赏
  • 举报
回复
你看有时间吗?项目需要完整人民网的留言,做个JAVA定时采集器,如果能做的话我们可以沟通下, 你把联系方式发我邮箱lma11@163.com,谢谢!
110成成 2019-01-28
  • 打赏
  • 举报
回复
package com.java.activiti.controller;



import net.sf.json.JSONObject;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;


import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class python {
public static void main(String[] args) {
String url = "http://liuyan.people.com.cn/threads/queryThreadsList?fid=1079&lastItem=0";
HttpClient httpClient = null;
HttpPost httpPost = null;
HttpResponse response = null;
try {
httpClient = HttpClients.createDefault();
httpPost = new HttpPost(url);// 传入URL地址
httpPost.addHeader("Accept",
"pplication/json, text/javascript, */*; q=0.01");
httpPost.addHeader("Accept-Encoding", "gzip, deflate");// 设置请求头
httpPost.addHeader("Accept-Language",
"zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");// 设置请求头
//httpPost.addHeader("Connection", "keep-alive");// 设置请求头
// httpPost.addHeader("Content-Length", "19");//设置请求头
//httpPost.addHeader("Content-Type",
// "application/x-www-form-urlencoded; charset=UTF-8");// 设置请求头

httpPost.addHeader("Referer",
"http://liuyan.people.com.cn/threads/list?fid=1079");// 设置请求头
//httpPost.addHeader("User-Agent",
// "Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/64.0");// 设置请求头
//httpPost.addHeader("X-Requested-With", "XMLHttpRequest");// 设置请求头

response = httpClient.execute(httpPost);// 获取响应
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("HTTP Status Code:" + statusCode);
if (statusCode != HttpStatus.SC_OK) {
System.out.println("HTTP请求未成功!HTTP Status Code:"
+ response.getStatusLine());
}
HttpEntity httpEntity = response.getEntity();
String reponseContent = EntityUtils.toString(httpEntity);
EntityUtils.consume(httpEntity);
System.out.println("响应内容:" + reponseContent);
} catch (Exception e) {
e.printStackTrace();
}

}
}
Lomon---- 2019-01-25
  • 打赏
  • 举报
回复
不太理解,有详细代码?谢谢!
110成成 2019-01-25
  • 打赏
  • 举报
回复
110成成 2019-01-25
  • 打赏
  • 举报
回复
相信你应该也抓过包,不知道你可注意了请求头的信息,
请求头中有一项Referer: http://liuyan.people.com.cn/threads/list?fid=1079
把这项在你的代码中加上就可以了。
**Java网络爬虫(蜘蛛)源码** **简介**: 这是一个基于Java语言开发的网络爬虫程序,具备高效、稳定的抓取能力,适用于各种网页数据的采集与处理。采用多线程技术,支持分布式爬取,可轻松应对大规模数据采集需求。 **功能特点**: 1. **URL管理**:自动识别并管理待爬取的URL队列,确保爬虫不会重复访问同一页面。 2. **网页抓取**:通过HTTP/HTTPS协议获取网页源代码,支持自定义User-Agent、代理IP等设置。 3. **数据解析**:利用正则表达式或HTML解析库(如Jsoup)从网页中提取所需数据。 4. **存储处理**:支持将抓取到的数据存储到数据库、文件系统或第三方平台中。 5. **异常处理**:遇到异常情况时,能够自动重试或记录错误日志,确保爬虫的稳定运行。 6. **扩展性**:提供丰富的API接口和插件机制,方便开发者进行二次开发和定制。 **适用场景**: * 搜索引擎优化(SEO):分析竞争对手网站结构、收录情况等。 * 数据挖掘与分析:从大量网页中提取有价值的数据进行分析。 * 舆情监测:实时抓取社交媒体、新闻等网站的动态信息。 * 网站内容更新:自动检测并下载网站更新的内容。 **注意事项**: * 请遵守目标网站的robots.txt协议,尊重网站版权和知识产权。 * 在使用过程中,如有任何疑问或需要技术支持,请联系作者。
政务服务大数据报告的技术原理分析 作者:郑荣新 齐同军 来源:《信息化建设》2018年第02期 政务服务大数据报告是针对政务服务的,主要反映了政务服务的社情民意和舆 情动向,梳理并客观呈现政务服务的舆情热点、党和政府政务方针政策及反馈、治国理 政体系及能力建设、政务服务新思想、新技术、新做法、新经验等有关政务服务的一切 资讯。同时,介绍境外媒体网站上对中国政务服务的评论,关注国际重大事件特别是对 中国政务服务有影响的事件,帮助领导干部拓展视野,更好地做好政务服务工作,在问 责制年代为领导干部提供应对参考。 对一个政务服务大数据报告来说,它的基本流程有以下六步:明确分析的目的 ,确定关键词和分析角度;进行数据采集和预处理;进行数据储存、索引和编目;进行 数据的分析,得出分析结果;进行可视化展现,直观反映分析结果;编写大数据报告, 得出最终结论。在这六步中间,还贯穿着自然语言处理的步骤。 明确分析目的 用户提出一个政务服务大数据报告的生成需求后,首先由相关的技术人员把这 个报告的题目进行分解,明确分析的目的,确定数据分析的对象。然后决定要获取哪些 数据进行分析,从什么角度来分析,以及分析的关键词等等。最后决定数据采集的来源 。 明确分析目的是大数据报告生成的第一步,如果这一步的方向错误,那么后面 的全部步骤都是无用功。为了保证这一步的正确性,目的分析都是由经验丰富的技术人 员来担任,并且在目的分析完成后,也要和用户反复的沟通,直到确定充分理解了用户 的需求,才会进行后面的操作步骤。 对政务服务大数据报告的目的分析而言,这一步都是人工操作,没有人工智能 或者算法能够代替。特别是数据采集的来源,通常都是由技术人员和用户来定义,无法 像传统的搜索引擎一样,能够对整个Internet网进行全面的搜索。但是随着大数据的逐 渐发展,最终它的数据来源会面向整个Internet网络。 分析的角度更是多样化,有地域划分、时间范围、用户类别、各类排名、满意 度、支持度、活跃度、关注度等等。对政务服务而言,用户的情绪是一个很重要的分析 角度。 同一个问题,分析角度不一样,得出的结论会有很大的偏差,所以,选择合适 的分析角度也是非常重要,大数据报告应该尽可能多的选择不同的分析角度给出结论。 数据采集和预处理 大数据技术中最重要的一环就是数据采集,也叫数据挖掘。它是通过数据爬取 软件平台实现的。 数据爬取不限定于某种编程语言,也不限定于某种操作系统。不管是Java语言 +Linux操作系统,还是C#语言+Windows操作系统等等,都可以胜任数据爬取的工作。 同样,数据的来源也是多种多样,对政务服务大数据报告来说,数据来源可以 是由爬取平台在相关政务网站上爬取,也可以由填报系统人工录入,也可以从Excel文档 导入,甚至还可以从相关的业务系统的数据库直接读取。 那么政务服务数据采集是从哪些网站来获取数据的呢?主要是当地的省市县政 务网站、国内知名的新闻网站的政务版块,以及一些国内知名论坛的相关版块。 一般来说,用户可以自建数据挖掘平台,但是也可以付费使用第三方的数据挖 掘平台。在大数据报告生成中,付费使用第三方的挖掘平台的数据,是一件很常见的事 情。一定程度上的数据共享,可以有效节约时间和成本,对大数据报告的生成是非常有 利的。 数据爬取需要爬虫程序,从本质上来说,爬虫就是一个能够多线程运行的程序 。它使用HTTP协议,根据设定好的爬取规则,通过GET和POST命令,得到相关网页的源数 据。然后通过一些程序插件去除里面的HTML、CSS修饰符和JS脚本等无效字符,得到数据 分析所需要的文本数据。 数据的爬取规则,经常采用XML文档来保存,因为XML文档里,可以定义非常复 杂的爬取规则,读取和编辑也较为方便。 每个要爬取的网页的规则,通常是由程序员手工编写,熟练的程序员一天能够 写出好几个页面爬取规则。现在还没有好的智能算法能够自动适应不同页面数据爬取 ,一旦网站改版或者添加新的栏目,就必须要人工重新编写爬取规则。 为了保证网站的正常运行,很多网站都有反爬手段,阻止爬虫占用网站的数据 和带宽等资源。常见的反爬手段有字符验证码、图片验证码、鼠标拖动滑块验证、IP访 问限制、流量限制、用户必须登录等等。爬虫程序通常都有具有一定的反爬能力,能够 自动处理一些简单的反爬手段,比如字符验证码和IP访问限制等。但是对一些复杂反爬 手段,也是无能无力,只能付费买授权或者从第三方买数据。 数据的爬取速度,通常几个小时内,可以爬完一个小型网站的全部页面,如果 该网站的数据更新量较小,那么几十分钟内就可以重新爬取一遍更新数据。爬虫的数量 越多,爬取速度也越快,但是为了防止被限制IP和封号,爬虫的数量对单个网站都不会 设置太多。对政务服务网站来说,需要爬取页面的数量相对较少,所

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧