如何抓取作业帮的问题数据?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fhg12225/article/details/62428510

作业帮可以说是最快做学生课程问答方面的APP,但是却没有网页版,只有手机APP,那么现在问题来了,我要如何抓取作业帮的数据呢?


首先我们先来看看网页版的作业帮是什么?

我们来打开一个连接:https://www.zybang.com/question/20dd4255e7b0478b47c18b8d7878a72b.html?ssl=1  这个就是作业帮问题的一个缩影,如果在搜索框进行搜索的话 会出现一个结果列表,但是这次我们不打算通过这个搜索来完成,我们通过 一点带面的方式来进行纵深抓取。


我们先来看看其中的问题界面:




同时在界面上还有:




这里我们采取的技巧就是 抓取一个问题和优质答案的同时,将里面的类似问题链接也同时抓取下来,可以放在内存或者Redis中,只要是能够实现队列的形式即可。


从而达到对整个网站的遍历。有的可能会问为什么不用搜索词的形式啊,大姐,我想问你一句,你有多少搜索词啊,能够遍历吗?还是乖乖采用这种方式吧。


通过这种方式 大概抓取了有300多万的问题数据,慢慢在网站上更新吧。


有同学可能会问,代码呢,在这里只透露一点代码:至于最全的代码欢迎加群:235664801


String url = "http://www.zybang.com/question/"+id+".html";
                Document doc = Jsoup.connect(url)
                    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                    .header("Accept-Encoding", "gzip, deflate, sdch")
                    .header("Accept-Language", "zh-CN,zh;q=0.8")
                    .header("Cache-Control", "max-age=0")
                    .header("Connection", "keep-alive")
                    .header("Host", "www.zybang.com")
                    .header("Upgrade-Insecure-Requests", "1")
                    .header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36")
                    .timeout(10*1000)
                    .get();
                    


展开阅读全文

没有更多推荐了,返回首页