Java爬虫获取豆瓣的短评数据
Java爬虫获取豆瓣的短评数据
打开豆瓣的选电影页面的链接,可以看到该网页的下面分为热门,最新,经典等栏目分类,网页每次显示20部电影,通过几部电影的查看,可以发现电影的短评页https://movie.douban.com/subject/26366496/?tag=%E7%83%AD%E9%97%A8&from=gaia_video是由电影的ID来索引的。所以短评数据的抓取分两步走,一获取电影的ID,二根据电影ID抓取短评,完整代码移步github 。
抓取电影ID
由于选电影的页面的HTML和页面的里的电影列表不是同时加载的,也就是说通过更改链接https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20 中的page_start参数是不可能使列表加载更多的。通过查看网页的代码,每次点击 “加载更多”按钮时,都会请求一个url https://movie.douban.com/j/search_subjects?type=movie&tag=热门&sort=recommend&page_limit=20&page_start=20, 我们在浏览器打开url连接可以看到返回的结果如下图。
也就是说通过请求这个url 链接并更改page_start参数,我们得到所有的电影,其中包含电影的ID,电影的标题,综合电影的评分等信息。抓取到的信息如下:抓取短评数据
豆瓣网站的电影短评的链接为https://movie.douban.com/subject/26366496/comments?start=20&limit=20&sort=new_score&status=P,是根据电影的ID进行查找的,每次点击“后页按钮”可以实现短评的翻页,根据上面的思路我们查看网页的审查元素,在每次点击后,会请求https://movie.douban.com/subject/26366496/comments?start=40&limit=20&sort=new_score&status=P&comments_only=1 链接,打开可以看到如下图的类似结果
可以看到短评都经过了特殊的编码,所以通过这种方式不方便短评的数据。通过多次的试验可以发现https://movie.douban.com/subject/26366496/comments?start=20&limit=20&sort=new_score&status=P,更改start参数可以实现短评的翻页。但是豆瓣针对游客用户有短评查看的限制,在未登录的情况下,查看靠后的短评会有如下的提示。
所以为了获得更多的评论数据,还是要做模拟登陆。这里参考链接做模拟登录处理,并设置了UserAgent切换,防止被封禁。抓取的数据如下。
可能出现的问题
(1)程序报如下错误,请求过于频繁造成IP被封,可以购买代理吧,或切换网络,或者等待几个小时解除。
(2)网页登录有如下提示,频繁请求数据导致账号被限制,按照验证码多数几次就解除了。
说明:程序设置了时间间隔,不会都豆瓣造成压力,且只获取少量数据用于学习,望豆瓣海涵。
Java爬虫获取豆瓣的短评数据相关推荐
- Java爬虫获取网页表格数据
//Java爬虫获取网页表格数据 public class Pachong implements Runnable { public void run() { String Rpt_date = nu ...
- python爬虫获取豆瓣图书Top250
在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...
- Java爬虫 获取中国天气网7日天气预报
Java爬虫 获取中国天气网7日天气预报 前言 工具准备 爬取数据 获取日期和星期 获取天气描述 获取温度范围 获取风向及风力 完整代码 引用 前言 项目需要获取7日天气预报,免费好用的接口寻觅不到, ...
- Python爬虫获取基金持仓股票数据
Python爬虫小实战 . 通过Python爬虫获取基金持仓股票数据,按照基金持仓金额对股票进行排行,并储存在本地数据库. from urllib import request from bs4 im ...
- 使用Python爬虫获取豆瓣影评,并用词云显示
使用Python爬虫获取豆瓣影评,并用词云显示 Python语言流行到现在,目前最受开发者喜爱的功能莫过于它的爬虫功能,以至于很多人以为Python的英语发音也是"爬虫",其实它是 ...
- java筛选表格,java怎么获取excel中的数据_java筛选excel数据
你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上? 主要用poi.jar 包.包含两jar就可以了:poi-3.16.jar.poi-oo ...
- 【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格
使用Python获取"豆瓣电影"相关数据,并生成Excel表格 本文使用了requests和pandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内.但发现存在 ...
- 【Python】爬虫获取微博热搜数据,response中文显示“\u7814\u7a76\u8bc1\u5b9e\u”
问题描述 在爬虫获取微博热搜数据的时候,response中文出现了不便于理解的字段,截取如下: ......[{"title_sub":"\u7814\u7a76\u8b ...
- Facebook Java爬虫获取视频数据
前言部分 前置说明 截止到本文发表前,该爬虫方法因为htmlunit的问题,已经无法正常运行,由于本人后续不再维护相关功能,所以不会修复此问题.如果是迫切需要解决方案的读者可以忽略本文,寻求其它解 ...
最新文章
- 关于在本地idea当中提交spark代码到远程的错误总结(第二篇)
- 小心as陷阱(c#)
- 电脑版企业微信_靠谱的企业客户管理系统电脑版下载
- C语言优先队列作用,C语言实现优先队列(priority queue)
- Dart 10-Day
- mysql c3p0 释放连接_mysql重启后,防止c3p0丢掉连接数_mysql
- Xweibo:新浪云微博服务 - 新浪开源微博系统
- 高通 msm8953 LCD 休眠/唤醒 流程
- 【Luogu P1878】舞蹈课
- 2019年CVTE凉
- 2021牛客暑假多校第二场 I题—Penguins
- SoftICE初使用
- 设备管理还在不坏不修、不停不管?这5大误区一定要避免
- 模拟键盘按键 自动输入文字
- 2017年乌镇互联网大会部分要点实地记录
- python压缩pdf_【转】PDF 用python 压缩
- 关于LSTMs的理解
- 我身边的中国教育之怪现象 (【小李木耳】2011年7月29日)
- 八、Pytest自动化测试框架 — Pytest测试报告
- python 二级考试操作题(一)