信息领域热词分析系统--java爬取CSDN中文章标题即链接
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.jsoup.nodes.Document;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
// 标题和链接获取
//初始化带爬取网页地址
private static List<String> urls() {
List<String> listUrl=new ArrayList<String>();
String[] type=new String[]{"nav/newarticles","nav/news","nav/ai","nav/cloud","nav/db","nav/career","nav/game","nav/engineering","nav/other"};
for(int i=0;i<type.length;i++) {
String url2="https://blog.csdn.net/"+type[i];
listUrl.add(url2);
}
return listUrl;
}
private static String selectDocumentText(String htmlText,String Query) {
Document doc=Jsoup.parse(htmlText);
String select=doc.select(Query).text();
return select;
}
//jsoup根据html字符串和语法获取链接地址
private static String selectDocumentLink(String htmlText,String Query) {
Document doc=Jsoup.parse(htmlText);
String select=doc.select(Query).attr("href");
return select;
}
@Override
public Site getSite() {
return Site.me().setSleepTime(1000).setRetryTimes(10);
}
//编写抽取逻辑
@Override
public void process(Page page) {
page.addTargetRequests(urls());
//定义如何抽取页面信息
List<String> htmls=page.getHtml().xpath("//li[@class='clearfix']/html()").all();
List<JavaBokeModel> javaBokes=new ArrayList<JavaBokeModel>();
for(String html:htmls) {
JavaBokeModel javaBoke=new JavaBokeModel();
//标题和链接
String title=selectDocumentText(html,TITLEQUERY);
String linke=selectDocumentLink(html,TITLEQUERY);
//作者和作者主页
String author=selectDocumentText(html,AUTHORQUERY);
//简介
System.out.println(title+" "+linke+" "+author);
javaBoke.setTitle(title);
javaBoke.setAuthor(author);
javaBoke.setLinke(linke);
javaBokes.add(javaBoke);
}
File.WriteStringToFile2(javaBokes);
public static void main(String[] args) {
long startTime,endTime;
DBUtil.getConnection();
startTime=new Date().getTime();
Spider create=Spider.create(new CSDNPageProcessor());
create.addUrl("https://blog.csdn.net/").thread(5).run();
try {
ps.close();
conn.close();
}catch(Exception e) {
}
endTime=new Date().getTime();
System.out.println("用时为:"+(endTime-startTime)/1000+"s");
}
信息领域热词分析系统--java爬取CSDN中文章标题即链接的更多相关文章
- 信息领域热词分析系统--python切词
利用python将标题切割成词语 import jieba #读取文件 f=open(r"F:\大数据\大作业\爬取到的数据\data1_xinxi.txt",'r') s=f.r ...
- 信息领域热词分析系统--python过滤
利用python过滤去没用的词语,过滤的词语存储在停用文件中. #创建停用词表 def stopwordlist(): stopwords=[line.strip() for line in open ...
- 信息领域热词分析系统--python统计
统计词语出现的频率,并且按从高到低的顺序报错在文件中 def main(): file=open("F:\大数据\大作业\分词后的文件\data4_xinxi.txt",'r') ...
- Java爬取先知论坛文章
Java爬取先知论坛文章 0x00 前言 上篇文章写了部分爬虫代码,这里给出一个完整的爬取先知论坛文章代码. 0x01 代码实现 pom.xml加入依赖: <dependencies> & ...
- 【python爬虫和正则表达式】爬取表格中的的二级链接
开始进公司实习的一个任务是整理一个网页页面上二级链接的内容整理到EXCEL中,这项工作把我头都搞大了,整理了好几天,实习生就是端茶送水的.前段时间学了爬虫,于是我想能不能用python写一个爬虫一个个 ...
- 阿里舆情︱舆情热词分析架构简述(Demo学习)
本节来源于阿里云栖社区,同时正在开发一个舆情平台,其中他们发布了一篇他们所做的分析流程,感觉可以作为案例来学习.文章来源:觉民cloud/云栖社区 平台试用链接:https://prophet.dat ...
- Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云
一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...
- java爬取并下载酷狗TOP500歌曲
是这样的,之前买车送的垃圾记录仪不能用了,这两天狠心买了好点的记录仪,带导航.音乐.蓝牙.4G等功能,寻思,既然有这些功能就利用起来,用4G听歌有点奢侈,就准备去酷狗下点歌听,居然都是需要办会员才能下 ...
- Java爬取并下载酷狗音乐
本文方法及代码仅供学习,仅供学习. 案例: 下载酷狗TOP500歌曲,代码用到的代码库包含:Jsoup.HttpClient.fastJson等. 正文: 1.分析是否可以获取到TOP500歌单 打开 ...
随机推荐
- Arduino Serial库的使用
1 Serial.begin() 2 Serial.end() 3 Serial.available() 4 Serial.read() 5 Serial.peek() 6 Serial.flush( ...
- Android 中的菜单 OptionsMenu的简单应用
OptionsMenu就是安卓手机中的菜单选项 首先 要实现对菜单的操作就要先重写OnCreateOptionsMenu(Menu menu)方法 通常有两种方法来实现对菜单中选项的添加 第一种是动态 ...
- CF 464E The Classic Problem
补一补之前听课时候的题. 考虑使用dij算法求最短路,因为边权存不下,所以考虑用主席树维护二进制位,因为每一次都只会在一个位置进行修改,所以可以暴力进位,这样均摊复杂度是对的. <算法导论> ...
- python 根据字典中的key,value进行排序
#coding=utf-8 import requests,json,collections,base64,datetime def sort(datas): data=json.dumps(data ...
- c语言中的const的作用及解析
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...
- mysql字段名与关键字冲突(near "to":syntax error)
今天遇到个问题,mysql字段为 to ,但是插入时报语法错误,仔细分析to是关键词 使用单引号和双引号 全部失败!!!! 仔细看 mysql的字段都是`(键盘Esc下面那个符号)括起来的, 试了一下 ...
- ubuntu 删除mysql
UBUNTU 彻底删除 MYSQL 然后重装 MYSQL 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get r ...
- Microsoft Visio绘图
2000年微软公司收购同名公司后,Visio成为微软公司的产品.Microsoft Visio是Windows 操作系统下运行的流程图软件,它现在是Microsoft Office软件的一个部分.Vi ...
- 【Python发展】pandas和koalas
1.pandas介绍 Python 数据科学在过去几年中爆炸式增长, pandas 已成为生态系统的关键.当数据科学家得到一个数据集时,他们会使用 pandas 进行探索.它是数据处理和分析的终极工具 ...
- CAT部署集成文档
1. 下载编译 1.1 下载源码 首先,到项目的git网页下载整个项目: https://github.com/dianping/cat 1.2 打包安装 接着就是进入这个项目的目录,运行打包安装命 ...