java微博系统源码(微博 源码)
本文目录一览:
java相关。爬虫问题,关于新浪微博。谢谢!
开门见山,说两个工具可以实现你的要求,分笔试selenium和htmlunit。当然还有其他工具,就不一一列举了。
首先你用jsoup或者apache的httpclient爬到你能够爬到的那一层,即可以通过response传回的html静态页面可以知道下一步爬哪个连接的那一层。
然后到爬不动的那一层,比如你说图片动态加载,抓回的html上找不到图片的链接了,那么你在使用上述两个工具其中一个。
大致思路我絮叨的如上。然后说一下二者的异同。
————————————————————————————————
这两个你选用一个就好,不过爬虫用htmlunit就可以了。这俩都是做页面测试方面很好用的工具,不同于其它的工具是他们可以模拟一个浏览器引擎,通过这句话我想你就应该知道你给他一个地址他就可以像浏览器那样解析,既然如此浏览器本身应该知道解析后的html啊,所以就可以拿到了。不同点是selenuim会弹出一个框,后者后台静默的为你奉献。当然,出发点不同,前者更善于肉眼可见的模拟,都很好用,简单爬虫推荐用后者。又絮叨了一堆,好了,你对这两个工具有个了解了。下面附上一个htmlunit的demo,你就可以用了。
————————————————————————————————
新浪微博需要登录,所以你需要模拟登录过程,并保持一个登录后的WebClient对象,然后用它来访问那些动态生成的网页。
WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage(登录的url);
HtmlForm form = page1.getFormByName("myform");
HtmlSubmitInput button = form.getInputByName("submitbutton");
HtmlTextInput textField = form.getInputByName("userid");
textField.setValueAttribute("root");
HtmlPage page2 = button.click();
好了,你已经可以做了。这个工具一定可以帮你完成你的功能需求。htmlunit的例子也很多,百度一下试试。
求真正有效的可以模拟登录新浪微博的java代码,后续可以用Jsoup进行抓取。急急!!登录成功马上给分!
package jsoupTest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Connection.Method;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;
public class JsoupTest {
public static void main(String[] args) throws IOException {
MapString, String map = new HashMap();
//map.put请根据自己的微博cookie得到
Response res = Jsoup.connect("别人的主页id")
.cookies(map).method(Method.GET).execute();
String s = res.body();
System.out.println(s);
String[] ss = s.split("scriptFM.view");
int i = 0;
// pl_content_homeFeed
// pl.content.homeFeed.index
ListString list = new ArrayList();
for (String x : ss) {
// System.out.println(i++ + "======================================");
// System.out.println(x.substring(0,
// x.length() 200 ? 200 : x.length()));
// System.out.println("===========================================");
if (x.contains("\"html\":\"")) {
String value = getHtml(x);
list.add(value);
System.out.println(value);
}
}
// content=ss[8].split("\"html\":\"")[1].replaceAll("(\\\\t|\\\\n)",
// "").replaceAll("\\\\\"", "\"").replaceAll("\\\\/", "/");
// content=content.substring(0,
// content.length()=13?content.length():content.length()-13);
// System.out.println(Native2AsciiUtils.ascii2Native(content));
}
public static String getHtml(String s) {
String content = s.split("\"html\":\"")[1]
.replaceAll("(\\\\t|\\\\n)", "").replaceAll("\\\\\"", "\"")
.replaceAll("\\\\/", "/");
content = content.substring(0,
content.length() = 13 ? content.length()
: content.length() - 13);
return Native2AsciiUtils.ascii2Native(content);
}
java 开发微博
开发微博是一个中等的系统。应该有以下几大模块:用户登录、用户注册、发布文章、文章管理(删、改、查)、发表留言、留言管理(查看、回复、删除)和退出登录。
其中,查看留言和查看留言最好用分页显示。整个系统主要用Struts编写,前台用Ajax技术实现,比如登录和注册。
数据库可以创建三个表:Users,News,Message
链接你应该会的。