Java获取豆瓣电影《毒液:致命守护者》影评信息

  1 package util;
  2
  3 import java.io.BufferedReader;
  4 import java.io.File;
  5 import java.io.FileNotFoundException;
  6 import java.io.FileOutputStream;
  7 import java.io.IOException;
  8 import java.io.InputStreamReader;
  9 import java.net.MalformedURLException;
 10 import java.net.URL;
 11 import java.net.URLConnection;
 12
 13 import org.jsoup.Jsoup;
 14 import org.jsoup.nodes.Document;
 15 import org.jsoup.nodes.Element;
 16 import org.jsoup.select.Elements;
 17
 18 public class DataDownUtil {
 19     /**
 20      * @author UPO
 21      * @param url
 22      * @param encoding
 23      * @return String 网页的源代码
 24      * <a href="http://www.baidu.com">百度</a>
 25      */
 26     public static String getHtmlResourceByUrl(String url,String encoding){
 27         StringBuffer buffer=new StringBuffer();
 28         URL urlobj=null;
 29         URLConnection uc=null;
 30         InputStreamReader isr=null;
 31         BufferedReader reader=null;
 32         try {
 33             //建立网络连接
 34             urlobj=new URL(url);
 35             //打开网络
 36             uc=urlobj.openConnection();
 37             //建立文件输入流的对象
 38             isr=new InputStreamReader(uc.getInputStream(), encoding);
 39             //建立文件缓冲写入流(相当于ctrl+v放入内存中)
 40             reader=new BufferedReader(isr);
 41
 42             //建立临时变量
 43             String temp=null;
 44             while((temp=reader.readLine())!=null){
 45                 buffer.append(temp);
 46                 buffer.append("\n");
 47             }
 48
 49         } catch (MalformedURLException e) {
 50             // TODO Auto-generated catch block
 51             e.printStackTrace();
 52             System.out.println("网络连接不可用");
 53         }catch (IOException e) {
 54             // TODO Auto-generated catch block
 55             e.printStackTrace();
 56             System.out.println("网络连接失败");
 57         }finally {
 58             if(isr!=null){
 59                 try {
 60                     isr.close();
 61                 } catch (IOException e) {
 62                     // TODO Auto-generated catch block
 63                     e.printStackTrace();
 64                 }
 65             }
 66         }
 67         return buffer.toString();
 68     }
 69     public static String getContext(){
 70
 71         String context=null;
 72         int start=0;
 73         while(start>=0&&start<=20){
 74
 75
 76             String url="https://movie.douban.com/subject/3168101/comments?start="+start+"&limit=20&sort=new_score&status=P";
 77             String encoding="utf-8";
 78             start=start+20;
 79             //1.获取网页源代码
 80             String html=getHtmlResourceByUrl(url, encoding);
 81             //System.out.println(html);
 82             //2.
 83             Document document=Jsoup.parse(html);
 84             Element element=document.getElementById("comments");
 85             Elements elements=element.getElementsByClass("comment-item");
 86             for (Element ele : elements) {
 87                 //https://movie.douban.com/subject/3168101/comments?start=20&limit=20&sort=new_score&status=P
 88                 String name=ele.getElementsByTag("a").last().text();
 89                 String desc=ele.getElementsByClass("short").text();
 90                 String time=ele.getElementsByClass("comment-time").text();
 91                 String votes=ele.getElementsByClass("votes").text();
 92                 System.out.println("\nname:"+name+"\ndesc:"+desc+"\ntime:"+time+"\nvotes:"+votes);
 93                 context="\nname:"+name+"\ndesc:"+desc+"\ntime:"+time+"\nvotes:"+votes;
 94             }
 95         }
 96         return context;
 97     }
 98
 99     public static void writeFileByLine(String content,String filePath){
100         File file=new File(filePath);
101         try {
102             FileOutputStream out=new FileOutputStream(file);
103             out.write(content.getBytes());
104         } catch (FileNotFoundException e) {
105             // TODO Auto-generated catch block
106             e.printStackTrace();
107         } catch (IOException e) {
108             // TODO Auto-generated catch block
109             e.printStackTrace();
110         }
111     }
112
113     public static void main(String[] args) {
114         System.out.println("你好阿泡");
115         System.out.println(getContext());
116
117
118
119     }
120
121 }

原文地址:https://www.cnblogs.com/sunupo/p/10111194.html

时间: 2024-08-03 19:32:35

Java获取豆瓣电影《毒液:致命守护者》影评信息的相关文章

python获取豆瓣电影TOP250的所有电影的相关信息

参考文档:https://weread.qq.com/web/reader/37132a705e2b2f37196c138k98f3284021498f137082c2e 说明:我才接触网络爬虫,在看<python网络爬虫入门到实践>一书时,作者写了个实例获取豆瓣电影TOP250的所有电影的电影名称,我在此基础上进行了更进一步的改进,获取了所有的相关信息,并用表格将这些信息保存下来. 相关知识: 网络爬虫分为三个步骤: 第一步:伪装为浏览器访问:第二步:解析网页代码:第三步:存储数据. (1)

java获取数据库的列名、类型等信息

当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData 和DataBaseMetaData类的源码并很好的了解它们的实现原理和思路,JDBC中提供有两种源数据,一种是数据库源数据,另一种是 ResultSet源数据.这些源数据就是描述存储用户数据的容器的数据结构.其中ResultSetMetaData类完成了查询结果信息和结果中的列的各种信息.下面我就以ResultSetMetaData为例,简单的罗列它的使用方法以及它内部的方法的使用. 首先,建立一张表

kettle 利用 HTTP Client 获取猫眼电影API近期上映相关信息,并解析json输出为Excel文件

前言 Kettle 除了常规的数据处理之外,还可以模拟发送HTTP client/post ,REST client. 实验背景 这周二老师布置了一项实验: 建立一个转换,实现一个猫眼API热映电影的json,生成为xls文件. 猫眼的热门电影接口为:?http://m.maoyan.com/#movie,从里面找到API接口:http://m.maoyan.com/ajax/movieOnInfoList.需要获取里面的:电影名.评分.主演.信息. 处理流程 我使用的是kettle的HTTP

【Python】从0开始写爬虫——豆瓣电影

1. 最近略忙..java在搞soap,之前是用工具自动生成代码的.最近可能会写一个soap的java调用 2. 这个豆瓣电影的爬虫.扒信息的部分暂时先做到这了.扒到的信息如下 from scrapy import app import re header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safar

用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

抓取豆瓣电影(http://movie.douban.com/nowplaying/chengdu/)中的正在热映前12部电影,并按照评分排序,保存至txt文件 #coding=utf-8 from selenium import webdriver import unittest from time import sleep class DoubanMovie(unittest.TestCase):     def setUp(self):          self.dr = webdriv

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动

Java豆瓣电影爬虫——使用Word2Vec分析电影短评数据

在上篇实现了电影详情和短评数据的抓取.到目前为止,已经抓了2000多部电影电视以及20000多的短评数据. 数据本身没有规律和价值,需要通过分析提炼成知识才有意义.抱着试试玩的想法,准备做一个有关情感分析方面的统计,看看这些评论里面的小伙伴都抱着什么态度来看待自己看过的电影,怀着何种心情写下的短评. 鉴于爬取的是短评数据,少则10来个字,多则百来个字,网上查找了下,发现Google开源的Word2Vec比较合适,于是今天捣鼓了一天,把自己遇到的问题和运行的结果在这里做个总结. Word2Ve是g

Java豆瓣电影爬虫——抓取电影详情和电影短评数据

一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. 动机 采集豆瓣电影数据包括电影详情页数据和电影的短评数据. 电影详情页如下图所示 需要保存这些详情字段如导演.编剧.演员等还有图中右下方的标签. 短评页面如下图所示 需要保存的字段有短评所属的电影名称,每条评论的详细信息如评论人名称.评论内容等. 数据库设计 有了如上的需求,需要设计表,其实很简单,

[Python]从豆瓣电影批量获取看过这部电影的用户列表

前言 由于之后要做一个实验,需要用到大量豆瓣用户的电影数据,因此想到了从豆瓣电影的“看过这部电影 的豆瓣成员”页面上来获取较为活跃的豆瓣电影用户. 链接分析 这是看过"模仿游戏"的豆瓣成员的网页链接:http://movie.douban.com/subject/10463953/collections. 一页上显示了20名看过这部电影的豆瓣用户.当点击下一页时,当前连接变为:http://movie.douban.com/subject/10463953/collections?st