一个简单的爬虫,爬取豆瓣上某部电影的所有评论及计算评分
2019-01-02 15:03
369 查看
1.一个狗血的背景:这几天都在盼望着《云南虫谷》上映,早就想去看(奈何这是一部大烂片)。在看电影之前习惯性的先在豆瓣上看看评分,以免被坑。可是迟迟的等不到豆瓣的评分结果,所以决定自己爬取页面,来计算一下。(感谢web端还没有完全退出历史舞台)。
2.过程:
2.1 想起前几天好像在鼓捣Linux的时候,无意间执行了一个命令,把百度的首页面的html全都下载下来了。那就好办了。用java的HttpURLConnection类去访问网站并且用流读取网页。然后将其看成一个字符串,截取关键字,不就ok了(反正也是玩玩,就不用那种按页面的标签去遍历和获取内容了,用python更合适的)。
2.2
StringBuffer html = new StringBuffer(); URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(isr); String temp; while ((temp = br.readLine()) != null) { html.append(temp).append("/n"); } br.close(); isr.close(); String eveyHtml = html.toString();
这是核心的代码了。可是在访问的时候却报错503,服务器被禁止了,没有登录的原因。
2.3 在访问网页的时候加上这几行代码
conn.setRequestProperty("User-Agent","xxxxxx")
conn.setRequestProperty("Cookie","xxxxx")
登录状态的,在浏览器中F12可以获取到以上的两个属性。
2.4 现在开始执行main方法,可是在执行一段时间以后,依然是503 并且,手动在浏览器登录,也被禁止访问豆瓣,自己的账号登录也被禁止了。(大概是被豆瓣封ip了),于是在每次的执行完一页的时候“休息”3秒钟
Thread.sleep(3000);
这样就好了。
2.5 接下来计算评分和评论,就要看豆瓣网页的特点了。
所以呢
String[] chaArry = srcText.split("class=\"short\">"); String comment = chaArry[1].substring(0, chaArry[1].indexOf("</"));
就得到了评论的内容和每页的各种得分了。
2.6 至于计算豆瓣的评分的规则,是早期看到豆瓣CEO的一篇文章的时候他的简单介绍,现在肯定有高级的算法过滤掉一些水军的评论。这里只是简单的计算了一下
double oneStarPoint = (one / total) * oneInit; double twoStarPoint = (two / total) * twoInit; double threeStarPoint = (three / total) * threeInit; double fourStarPoint = (four / total) * fourInit; double fiveStarPoint = (five / total) * fiveInit; //假设每颗星相当于2分,则改电影的豆瓣评分 double scoreTotal = (oneStarPoint + twoStarPoint + threeStarPoint + fourStarPoint + fiveStarPoint) * twoInit; System.out.println("《云南虫谷》电影的豆瓣评分为:" + scoreTotal); return oneStarTotal;
2.7 最后开始运行
相关文章推荐
- 一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
- 计算一个有向图所有的简单圈(除起点和终点外没有重复顶点的圈)
- scrapy初步-简单静态爬虫(爬取电影天堂所有电影)
- java爬虫框架——jsoup的简单使用(爬取电影天堂的所有电影的信息,包括下载的链接)
- Python学习笔记 第二部分 - 正则表达式 与 爬虫小实例(抓取豆瓣电影中评分大于等于8分的影片)
- Python爬虫初学(1)豆瓣电影top250评论数
- python计算一个字符串中所有数字的和(特简单方法)
- python爬虫之豆瓣电影评分
- 使用爬虫爬取豆瓣2016电影榜单中所有电影
- python 爬虫 豆瓣 评论及评分
- 爬虫实战【12】使用cookie登陆豆瓣电影以及获取单个电影的所有短评
- 对一个简单豆瓣电影TOP100爬虫的学习
- 一个简单的scrapy爬虫抓取豆瓣刘亦菲的图片地址
- 用php实现一个简单的爬虫,抓取电影网站的视频下载地址
- 【学习笔记】Python爬虫-豆瓣电影所有短评
- golang 简单爬虫,245行代码爬取豆瓣电影电视剧等信息并保存到excel
- Python—爬虫—简单爬取豆瓣电影
- Python爬虫初学(2)豆瓣电影top250评论数
- 简单爬虫学习---爬取豆瓣电影top250
- Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析