一:安装MyEclipse过程及优化
1.安装MyEclipse过程
1.安装Mysql过程
点击打开链接
2.Mysql管理工具Navicat premium
点击打开链接
三:jsoup简介及其主要功能
1.jsoup简介
Jsoup是一款比较好的Java版HTML解析器。可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
2.jsoup主要功能
(1)解析一个html字符串
(2)从URL直接加载HTML文档并且使用网络代理Agent
(3)使用选择器来查找、取出数据
四:示例(大众点评网)
1.获取评论量
2.获取人均消费
3.获取综合评价
4.获取位置
五:学习感受
今天是实训的第一天,上午主要是安装了学习的相关软件,我们都能跟上老师的步伐,其中MySql安装过程中有一些需要注意的问题,例如它的编码方式(utf—8),还有就是要设置密码,密码用于访问数据库的使用,这个必须记住,如果你的电脑以前装过MySql的话,一定要删除干净注册表,才可以以安装。下午主要是学习了jsoup的一些功能,用于抓取网页中的数据信息,通过一下午的学习,我体会到你想要获取网页中的某一项的数据信息,可以使用多种方式,但是我觉得使用先选择器来抓取数据的话比较容易实现。
六:遇到的问题
我们小组做的实训内容是提取大众点评网的数据,今天下午在使用jsoup从URL直接加载HTML文档时,最开始使用的是谷歌浏览器获取网页的数据,但是过了一会数据就没办法获取,使用网络代理Agent也没有管用,之后我换了一个浏览器,还是这种情况。
我百度了一下java中模拟浏览器访问网页,上面说要建立一个HttpUrlConnection实例。
但是不怎么怎么用,不知道对不对,希望老师给点意见。
1.安装MyEclipse过程
2.MyEclipse优化
二:安装MySql过程及管理工具1.安装Mysql过程
点击打开链接
2.Mysql管理工具Navicat premium
点击打开链接
三:jsoup简介及其主要功能
1.jsoup简介
Jsoup是一款比较好的Java版HTML解析器。可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
2.jsoup主要功能
(1)解析一个html字符串
String html = "<html><head><title>开源中国社区</title></head>"
+"<body id='1'><p class='p_1'>这里是jsoup 项目的相关文章</p><h1>这是一个子网页</h1></body></html>";
Document doc = Jsoup.parse(html);
//获取网页的标题
String title=doc.title();
//获取网页body里的与p标签同级的下一个标签的内容
String title=doc.getElementsByTag("p").next().text();
//获取网页中body的内容
String title=doc.body().text();
//获取body里的子标签内容
String title=doc.children().text();
//获取body里的h1标签内容
String title=doc.getElementsByTag("h1").text();
//获取id=“1”的内容
String id=doc.getElementById("1").text();
//获取class=“artical_tag”下的第一个子标签内容
String date=doc.getElementsByClass("artical_tag").first().children().text();
System.out.println(title);
(2)从URL直接加载HTML文档并且使用网络代理Agent
String agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36";
String url="http://www.dianping.com/shop/3644416";
Document doc = Jsoup.connect(url).userAgent(agent).post();
(3)使用选择器来查找、取出数据
String url="http://www.dianping.com/shop/3644416";
Document doc = Jsoup.connect(url).get();
String title=doc.select("#basic-info > div.expand-info.address > span.item").text();
System.out.println(title);
四:示例(大众点评网)
1.获取评论量
String url="http://www.dianping.com/shop/83061607";
Document doc = Jsoup.connect(url).get();
String comment=doc.getElementById("reviewCount").text();
System.out.println(comment);
2.获取人均消费
String url="http://www.dianping.com/shop/83061607";
Document doc = Jsoup.connect(url).get();
String money=doc.select("#avgPriceTitle").text();
System.out.println(money);
3.获取综合评价
String url="http://www.dianping.com/shop/83061607";
Document doc = Jsoup.connect(url).get();
String t=doc.getElementById("comment_score").text();
System.out.println(t);
4.获取位置
String url="http://www.dianping.com/shop/83061607";
Document doc = Jsoup.connect(url).get();
String p=doc.getElementsByClass("desc").text();
System.out.println(p);
五:学习感受
今天是实训的第一天,上午主要是安装了学习的相关软件,我们都能跟上老师的步伐,其中MySql安装过程中有一些需要注意的问题,例如它的编码方式(utf—8),还有就是要设置密码,密码用于访问数据库的使用,这个必须记住,如果你的电脑以前装过MySql的话,一定要删除干净注册表,才可以以安装。下午主要是学习了jsoup的一些功能,用于抓取网页中的数据信息,通过一下午的学习,我体会到你想要获取网页中的某一项的数据信息,可以使用多种方式,但是我觉得使用先选择器来抓取数据的话比较容易实现。
六:遇到的问题
我们小组做的实训内容是提取大众点评网的数据,今天下午在使用jsoup从URL直接加载HTML文档时,最开始使用的是谷歌浏览器获取网页的数据,但是过了一会数据就没办法获取,使用网络代理Agent也没有管用,之后我换了一个浏览器,还是这种情况。
我百度了一下java中模拟浏览器访问网页,上面说要建立一个HttpUrlConnection实例。
HttpURLConnection conn = null;
try {
URL realUrl = new URL(url);
conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestMethod("GET");
conn.setUseCaches(false);
conn.setReadTimeout(8000);
conn.setConnectTimeout(8000);
conn.setInstanceFollowRedirects(false);
conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0");
int code = conn.getResponseCode();
if (code == 200) {
InputStream is = conn.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = in.readLine()) != null){
buffer.append(line);
}
String result = buffer.toString();
//subscriber是观察者,在本代码中可以理解成发送数据给activity
subscriber.onNext(result);
}
}catch (Exception e){
subscriber.onError(e);
}
但是不怎么怎么用,不知道对不对,希望老师给点意见。