当前位置:   article > 正文

java知乎爬虫源码_java知乎爬虫写作过程和思路

知乎爬虫源代码

0.需要的知识点

正则表达式

java多线程线程池池知识

httpclient网络库及json和html结构

1.获取主话题

在知乎中一共有33个主话题,在33个主话题下又有15776个子话题,因此我们首先要获取到33个主话题

(ps:一开始打算用HttpURLConnection进行网络请求,由于后面需要以post形式访问并且提交form因此后面的代码改用了httpclient进行网络请求)

28a9bd3365c7?t=123

图中的data-id就是主话题的id

public static void getTopicId(){

new Thread(new Runnable() {

@Override

public void run() {

Connection connection;

int id = 1;

try {

URL url = new URL("https://www.zhihu.com/topics");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("GET");

conn.connect();

BufferedReader bfr = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));

String line = null;

StringBuilder sb = new StringBuilder();

while ((line = (bfr.readLine())) != null){

sb.append(line);

}

String result = sb.toString();

String regex = "data-id=\"[0-9]{0,6}\"";

Pattern pattern = Pattern.compile(regex);

Matcher m = pattern.matcher(result);

String regx = "href=\"#.*?\"";

Pattern p = Pattern.compile(regx)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/780572
推荐阅读
相关标签
  

闽ICP备14008679号