java 利用jousp 爬取知乎首页问题

Posted 山兮木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 利用jousp 爬取知乎首页问题相关的知识,希望对你有一定的参考价值。

今天学了下java的爬虫,首先要下载jousp的包,然后导入,导入过程:首先右击工程:Build Path ->configure Build Path,再点击Add External JARS,进行导包。

学习参考文档:https://jsoup.org/

但是有一点小问题:就是利用java爬虫爬去了知乎的问题,但是却只爬到了前三条,大体思路应该还是正确的。不知怎么解决,如果各位大佬有思路,望指教:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class worm0{
    public static void main(String[] args) throws IOException {
    
        Document document=Jsoup.connect("https://www.zhihu.com/").get();
        Elements main=document.select(".ContentLayout-mainColumn");
        
        Elements url=main.select("h2[class=ContentItem-title]").select("a");
        System.out.println("url"+url);
        for(Element question:url){
            //输出href后的值,即主页上每个关注问题的链接
            String URL=question.attr("abs:href");
            //下载问题链接指向的页面
            Document document2=Jsoup.connect(URL).get();
            //问题
            Elements title=document2.select(".QuestionHeader-title");
            //问题描述
            Elements detail=document2.select("span[class=RichText ztext]");
            //回答
            Elements answer=document2.select(".RichContent-inner");
            System.out.println("
"+"链接:"+URL
                    +"
"+"标题:"+title.text()
                    +"
"+"问题描述:"+detail.text()
                    +"
"+"回答:"+answer.text());
        }   
    }
}

 

以上是关于java 利用jousp 爬取知乎首页问题的主要内容,如果未能解决你的问题,请参考以下文章

scrapy 爬取知乎问题答案 ,并异步写入数据库(mysql)

爬虫实战--利用Scrapy爬取知乎用户信息

利用 Scrapy 爬取知乎用户信息

php模拟登陆知乎

基于webmagic的爬虫小应用--爬取知乎用户信息

基于webmagic的爬虫小应用--爬取知乎用户信息