Java爬取晋江书城的某个分类下小说的简介和评论
写在前面,一开始是因为书荒又找不到自己喜欢的,就打算去晋江书城看看,结果排在前面的也不是我的菜,一本本挑又嫌太麻烦就打算把数据爬下来慢慢的看。分析了一下晋江的网页,发现可以爬下来的数据有书名、作者、类型、简介、标签、收藏、下载、点赞数、评论等,而我已经在晋江的网页上做过分类筛选,且萝卜白菜各有所爱,收藏和下载量高的也不能代表就是我喜欢的,所以我最后选择爬取简介、评论和第一章的内容,简介是一本书大体的概要,可以筛选不喜欢的设定,评论可以筛选一些文笔不好或太狗血的文章,第一章内容可以大致了解一个人的文风····当然后来我因为觉得数据太多的原因没有爬第一章内容。最后的成果是把每一页的小说的名字、简介和评论抓取出来,并生成一个txt文件,然后供自己手动筛选。
1.准备好需要爬取的网页URL:
http://www.jjwxc.net/bookbase.php?fw0=0&fbsj=0&ycx0=0&ycx1=1&xx1=1&sd2=2&sd3=4&lx1=1&lx6=6&lx10=10&lx13=13&lx16=16&fg2=2&sortType=0&isfinish=2&collectiontypes=ors&searchkeywords=&page=1";
2.eclipse新建Dynamic项目JingjiangSpider;
3.在WEB-INF/lib下引入需要的包。
其实不太确定是不是必须的····
4.在src下新建一个包com.guozi.spider,并在包下新建java文件JinjiangSpider.java。
5.先把本页的小说名和链接爬出来封装到map中去。
主要是解析,需要打开网页按F12去看element那部分源码,对着网页找到我们需要提取的那部分节点的id或者class甚至是标签,通过这些我们才能提取到我们所需要的信息。Id唯一所以是我们的第一选择。最后输出测试一下是否得到需要信息。
JinjiangSpider.java:
//把小说名和链接整出来装到map里面去。
public static Map getPageurl(String url){
Map<String,String> nm=new HashMap<String,String>();
try {
//从网页获取得到HTML jsoup是网页解析工具
Document document = Jsoup.connect(url).get();
Element body=document.body();
//cytable是分析网页源码得到的节点 通过class得到element
Elements links1 = body.getEle