jquery+ajax+JSON显示帖子-仿知乎个人网站fourask(三)

HTML:划块div class="content"


JS代码

	$.ajax({  //ajax显示发帖
	  url:'show.jsp',
	  type:'POST', 
	  success:function(response,status,xhr){ 
	     var json=$.parseJSON(response);
	     var html='';
	     var arr=[]; 
	     for(var i=0;i<json.length;i++){ 
	         html+='<h4>'+json[i].user+'发表于'+json[i].date+'</h4><h3>'+ 
	               json[i].title+'</h3><div class="c_editor">'+json[i].content+
	               '</div><div class="c_bottom">0条评论<span class="down">显示全部</span><span class="up">收起</span></div><hr noshade="noshade" size="1"/>'; } 
	     $('.content').append(html); 
	     $.each(   //jQuery 遍历
	       $('.c_editor'),function(index,value){ 
	         arr[index]=$(value).height();
	         if($(value).height()>200){ 
	              $(value).next('.c_bottom').find('.up').hide();} 
	         $(value).height(155);}); 
	     $.each($('.c_bottom .down'),function(index,value){ 
	       $(this).click(function(){ 
	         $(this).parent().prev().height(arr[index]);
	         $(this).hide(); 
	         $(this).parent().find('.up').show();});}); 
	     $.each($('.c_bottom .up'),function(index,value){ 
	       $(this).click(function(){ 
	         $(this).parent().prev().height(155);
	         $(this).hide(); 
	         $(this).parent().find('.down').show();
	         });
	        });
	      },
	});


CSS

.content h4{ color:#666; font-weight:normal;} 
.content h3{ color:#369;}
.content .c_editor{ color:#333; line-height:180%;/*height:110px;*/overflow:hidden;} 
.content .c_bottom{ padding:5px 0 0 0;} 
.content hr{ color:#ccc;height:1px;} 
.content .up{ float:right;color:#369;cursor:pointer;} 
.content .down{ float:right;color:#369;cursor:pointer;}


show.jsp发送json,数据库根据需要设计

    <%@ page language="java" import="java.util.*,java.io.*" %>
    <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
    <%@ page import ="java.sql.*" %> 
    <%@ page import ="org.json.JSONObject,org.json.JSONArray" %> 
    <%@ page import="com.mysql.jdbc.Driver" %>
<%!
  public JSONObject getJsonObj(String title,String tvalue,String content,String cvalue,String user,String uvalue,String date,String dvalue) {  
    JSONObject jsonobj = new JSONObject();  
    jsonobj.put(title,tvalue);  
    jsonobj.put(content,cvalue);  
    jsonobj.put(user,uvalue);  
    jsonobj.put(date,dvalue);  
    return jsonobj;  
}  
%>  
<%  
   request.setCharacterEncoding("UTF-8");  
   response.setCharacterEncoding("UTF-8");  
   response.setContentType("text/html; charset=utf-8");  
%>  
<% 

try 
{ 
/** 连接数据库参数 **/ 
String driverName = "com.mysql.jdbc.Driver"; //驱动名称 
String DBUser = "root"; //mysql用户名 
String DBPasswd = ""; //mysql密码 
String DBName = "zhiwen"; //数据库名 
JSONArray js = new JSONArray();  
JSONObject value=new JSONObject();


String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd + "&useUnicode=true&characterEncoding=UTF-8"; 
Class.forName(driverName).newInstance(); 
Connection conn = DriverManager.getConnection(connUrl); 
Statement stmt = conn.createStatement(); 
String query_sql = "select title,content,user,date from question order by date desc limit 0,5"; 

try { 
ResultSet rs = stmt.executeQuery(query_sql); 
while(rs.next()) { 
	js.put(getJsonObj("title",rs.getString("title"),"content",rs.getString("content"),"user",rs.getString("user"),"date",rs.getString("date"))); // 放一个字符串
}
}catch(Exception e) { 
e.printStackTrace(); 
} 
response.getWriter().write(js.toString());
//rs.close(); 
stmt.close(); 
conn.close(); 
}catch (Exception e) { 
e.printStackTrace(); 
} 
%> 


结果展示



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需要使用Python编程语言来爬取知乎问题下的所有回答。具体步骤如下: 1. 首先需要安装Python的requests和beautifulsoup4库,用于发送HTTP请求和解析HTML页面。 2. 获取知乎问题页面的URL,可以手动复制粘贴,或者使用爬虫自动获取。 3. 使用requests库发送GET请求,获取知乎问题页面的HTML源代码。 4. 使用beautifulsoup4库解析HTML源代码,获取所有回答的信息。 5. 对每个回答进行解析,获取回答的文本、作者、点赞数、评论数等信息。 6. 将获取到的信息存储到本地文件或数据库中。 下面是一段示例代码,可以爬取知乎某个问题下的所有回答: ```python import requests from bs4 import BeautifulSoup # 知乎问题页面的URL url = 'https://www.zhihu.com/question/xxxxxx' # 发送GET请求,获取页面HTML源代码 response = requests.get(url) html = response.text # 解析HTML页面,获取所有回答的信息 soup = BeautifulSoup(html, 'html.parser') answers = soup.find_all('div', class_='List-item') # 遍历每个回答,解析并存储信息 for answer in answers: # 解析回答文本、作者、点赞数、评论数等信息 text = answer.find('div', class_='RichContent-inner').get_text() author = answer.find('div', class_='ContentItem-head').get_text() upvotes = answer.find('button', class_='Button VoteButton VoteButton--up').get_text() comments = answer.find('button', class_='Button ContentItem-action Button--plain Button--withIcon Button--hoverCard').get_text() # 将信息存储到本地文件或数据库中 with open('answers.txt', 'a', encoding='utf-8') as f: f.write(f'{author}\n{text}\n赞同数:{upvotes} 评论数:{comments}\n\n') ``` 需要注意的是,爬取知乎数据属于个人行为,需要遵守知乎的相关规定,不得用于商业用途。另外,爬取速度也需要适当控制,避免给服务器造成过大的负担。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值