模拟微博的数据滚动加载

现在的微博非常的流行,本人在使用QQ微博的过程中发现,最新的微博信息是显示在最前面,之前时间的微博信息是随着你拉动滚动条而加载,当滚动条拉到最下方的时候就加载一定量的信息。这不仅是一种很好的用户体验,而且充分发挥了AJAX技术的优势,实现了按需加载。
如果数据有很多,一直往下看,那页面就会越来越长,而且内存就占用越来越多,到一定量,浏览器会相应越来越慢并且有可能会失去响应。如果解决这个问题呢,一种最普遍的解决办法就是使用分页。那有没有其他的解决方案呢,我想了一个方案,可否实现滚屏数据,每次滚动条滚动到最低端的时候加载一定量新的数据,那我就删除最前面的同样条数的数据,当滚动条在最顶端的时候,我就加载前面的一定量的数据,而删除最下面同样条数的数据。整个页面始终保持着一定条数的数据。基于这个想法简单的用js实现了下。下面是代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<link type="text/css" rel="stylesheet" href="css/table.css" />
<script type="text/javascript" src="js/i.js"></script>
<script type="text/javascript" src="js/i.ajax.js"></script>
<script type="text/javascript" src="js/i.scroll.js"></script>
<script type="text/javascript">
I.ready(function(){
/*
* 三个必须的参数
* 1.呈现数据的表格
* 2.表头数组
* 3.请求数据的后台url
* 两个可选参数
* 1.一屏数据显示的条数,默认为100
* 2.滚动屏幕数据的加载条数,默认为10
*/
I.SCROLL.scroll(I.$('tag','table')[0],['ID','年龄','姓名','爱好'],'DataServlet');
});
</script>
</head>
<body>
<table style="margin: 0px;" cellspacing="0" class="data"></table>
</body>
</html>

后台代码以及js文件在附件中下载。
这只是一种简单的演示,在微博的场景中可能并不适用,比如你想看最新的微博就不能一下回去了。还有就是后台数据的获取,大数据量缓存的问题。也许在某些场景下会有用武之地呢?
欢迎评论。。。

[img]http://dl.iteye.com/upload/attachment/354358/afd3364d-859c-349d-b69d-4801182294d9.jpg[/img]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python模拟微博登录的示例代码: ```python import requests from bs4 import BeautifulSoup # 构造请求头部 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 登录页面URL login_url = 'https://passport.weibo.cn/signin/login' # 构造登录请求表单数据 data = { 'username': 'your_username', # 替换为你的微博账号 'password': 'your_password', # 替换为你的微博密码 'savestate': '1', 'r': '', 'ec': '0', 'pagerefer': 'https://passport.weibo.cn/signin/welcome?entry=mweibo&r=https%3A%2F%2Fm.weibo.cn%2F', 'entry': 'mweibo' } # 发送登录请求 session = requests.session() response = session.post(login_url, headers=headers, data=data) # 获取登录后的首页内容 home_url = 'https://m.weibo.cn/' response = session.get(home_url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') print(soup) ``` 请注意,微博登录需要输入验证码,上述示例代码并未处理验证码。如果出现验证码,需要手动输入或者使用第三方库进行识别。此外,微博登录也可能需要进行短信验证等额外步骤。 ### 回答2: Python可以使用Selenium库来模拟微博登录。 Selenium是一个自动化测试工具,可以模拟用户在浏览器中的操作。首先,我们需要安装Selenium库和一个浏览器驱动,比如ChromeDriver。 接下来,我们可以使用以下代码来模拟微博登录: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 创建一个Chrome浏览器的实例 driver = webdriver.Chrome() # 打开微博登录页面 driver.get("https://weibo.com/login.php") # 定位到用户名和密码的输入框,并输入相应的值 username_input = driver.find_element_by_name("username") username_input.send_keys("your_username") password_input = driver.find_element_by_name("password") password_input.send_keys("your_password") # 提交登录信息 password_input.send_keys(Keys.ENTER) # 等待登录成功并跳转到首页 time.sleep(5) # 打印登录成功后的页面标题 print(driver.title) # 关闭浏览器 driver.quit() ``` 上述代码首先创建一个Chrome浏览器实例,然后打开微博登录页面。接着,通过`find_element_by_name`方法定位到用户名和密码的输入框,并使用`send_keys`方法输入相应的值。 然后,通过`send_keys(Keys.ENTER)`方法提交登录信息。登录成功后,等待5秒钟,然后打印登录成功后的页面标题。 最后,关闭浏览器。 通过这样的方式,我们可以使用Python来模拟微博登录,实现自动化登录功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值