您好,欢迎访问一九零五行业门户网

零基础写Java知乎爬虫之获取知乎编辑推荐内容(3)

零基础写java知乎爬虫之获取知乎编辑推荐内容(3) :
zhihu.java源码:
import java.util.arraylist; public class zhihu { public string question;// 问题 public string zhihuurl;// 网页链接 public arraylist<string> answers;// 存储所有回答的数组 // 构造方法初始化数据 public zhihu() { question = ""; zhihuurl = ""; answers = new arraylist<string>(); } @override public string tostring() { return "问题:" + question + "\n链接:" + zhihuurl + "\n回答:" + answers + "\n"; } }
再新建一个spider类来存放一些爬虫常用的函数。
spider.java源码:
import java.io.bufferedreader; import java.io.inputstreamreader; import java.net.url; import java.net.urlconnection; import java.util.arraylist; import java.util.regex.matcher; import java.util.regex.pattern; public class spider { static string sendget(string url) { // 定义一个字符串用来存储网页内容 string result = ""; // 定义一个缓冲字符输入流 bufferedreader in = null; try { // 将string转成url对象 url realurl = new url(url); // 初始化一个链接到那个url的连接 urlconnection connection = realurl.openconnection(); // 开始实际的连接 connection.connect(); // 初始化 bufferedreader输入流来读取url的响应 in = new bufferedreader(new inputstreamreader( connection.getinputstream(), "utf-8")); // 用来临时存储抓取到的每一行的数据 string line; while ((line = in.readline()) != null) { // 遍历抓取到的每一行并将其存储到result里面 result += line; } } catch (exception e) { system.out.println("发送get请求出现异常!" + e); e.printstacktrace(); } // 使用finally来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (exception e2) { e2.printstacktrace(); } } return result; } static arraylist<zhihu> getzhihu(string content) { // 预定义一个arraylist来存储结果 arraylist<zhihu> results = new arraylist<zhihu>(); // 用来匹配标题 pattern questionpattern = pattern.compile("question_link.+?>(.+?)<"); matcher questionmatcher = questionpattern.matcher(content); // 用来匹配url,也就是问题的链接 pattern urlpattern = pattern.compile("question_link.+?href=\"(.+?)\""); matcher urlmatcher = urlpattern.matcher(content); // 问题和链接要均能匹配到 boolean isfind = questionmatcher.find() && urlmatcher.find(); while (isfind) { // 定义一个知乎对象来存储抓取到的信息 zhihu zhuhutemp = new zhihu(); zhuhutemp.question = questionmatcher.group(1); zhuhutemp.zhihuurl = "http://www.zhihu.com" + urlmatcher.group(1); // 添加成功匹配的结果 results.add(zhuhutemp); // 继续查找下一个匹配对象 isfind = questionmatcher.find() && urlmatcher.find(); } return results; } }
以上就是零基础写java知乎爬虫之获取知乎编辑推荐内容(3) 的内容。
其它类似信息

推荐信息