Java爬虫获取豆瓣的短评数据

打开豆瓣的选电影页面的链接,可以看到该网页的下面分为热门,最新,经典等栏目分类,网页每次显示20部电影,通过几部电影的查看,可以发现电影的短评页https://movie.douban.com/subject/26366496/?tag=%E7%83%AD%E9%97%A8&from=gaia_video是由电影的ID来索引的。所以短评数据的抓取分两步走,一获取电影的ID,二根据电影ID抓取短评,完整代码移步github 。

  1. 抓取电影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,电影的标题,综合电影的评分等信息。抓取到的信息如下:

  2. 抓取短评数据
    豆瓣网站的电影短评的链接为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切换,防止被封禁。抓取的数据如下。

  3. 可能出现的问题
    (1)程序报如下错误,请求过于频繁造成IP被封,可以购买代理吧,或切换网络,或者等待几个小时解除。

    (2)网页登录有如下提示,频繁请求数据导致账号被限制,按照验证码多数几次就解除了。

    说明:程序设置了时间间隔,不会都豆瓣造成压力,且只获取少量数据用于学习,望豆瓣海涵。

Java爬虫获取豆瓣的短评数据相关推荐

  1. Java爬虫获取网页表格数据

    //Java爬虫获取网页表格数据 public class Pachong implements Runnable { public void run() { String Rpt_date = nu ...

  2. python爬虫获取豆瓣图书Top250

    在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...

  3. Java爬虫 获取中国天气网7日天气预报

    Java爬虫 获取中国天气网7日天气预报 前言 工具准备 爬取数据 获取日期和星期 获取天气描述 获取温度范围 获取风向及风力 完整代码 引用 前言 项目需要获取7日天气预报,免费好用的接口寻觅不到, ...

  4. Python爬虫获取基金持仓股票数据

    Python爬虫小实战 . 通过Python爬虫获取基金持仓股票数据,按照基金持仓金额对股票进行排行,并储存在本地数据库. from urllib import request from bs4 im ...

  5. 使用Python爬虫获取豆瓣影评,并用词云显示

    使用Python爬虫获取豆瓣影评,并用词云显示 Python语言流行到现在,目前最受开发者喜爱的功能莫过于它的爬虫功能,以至于很多人以为Python的英语发音也是"爬虫",其实它是 ...

  6. java筛选表格,java怎么获取excel中的数据_java筛选excel数据

    你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上? 主要用poi.jar 包.包含两jar就可以了:poi-3.16.jar.poi-oo ...

  7. 【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格

    使用Python获取"豆瓣电影"相关数据,并生成Excel表格 本文使用了requests和pandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内.但发现存在 ...

  8. 【Python】爬虫获取微博热搜数据,response中文显示“\u7814\u7a76\u8bc1\u5b9e\u”

    问题描述 在爬虫获取微博热搜数据的时候,response中文出现了不便于理解的字段,截取如下: ......[{"title_sub":"\u7814\u7a76\u8b ...

  9. Facebook Java爬虫获取视频数据

    前言部分 前置说明 ​ 截止到本文发表前,该爬虫方法因为htmlunit的问题,已经无法正常运行,由于本人后续不再维护相关功能,所以不会修复此问题.如果是迫切需要解决方案的读者可以忽略本文,寻求其它解 ...

最新文章

  1. 关于在本地idea当中提交spark代码到远程的错误总结(第二篇)
  2. 小心as陷阱(c#)
  3. 电脑版企业微信_靠谱的企业客户管理系统电脑版下载
  4. C语言优先队列作用,C语言实现优先队列(priority queue)
  5. Dart 10-Day
  6. mysql c3p0 释放连接_mysql重启后,防止c3p0丢掉连接数_mysql
  7. Xweibo:新浪云微博服务 - 新浪开源微博系统
  8. 高通 msm8953 LCD 休眠/唤醒 流程
  9. 【Luogu P1878】舞蹈课
  10. 2019年CVTE凉
  11. 2021牛客暑假多校第二场 I题—Penguins
  12. SoftICE初使用
  13. 设备管理还在不坏不修、不停不管?这5大误区一定要避免
  14. 模拟键盘按键 自动输入文字
  15. 2017年乌镇互联网大会部分要点实地记录
  16. python压缩pdf_【转】PDF 用python 压缩
  17. 关于LSTMs的理解
  18. 我身边的中国教育之怪现象 (【小李木耳】2011年7月29日)
  19. 八、Pytest自动化测试框架 — Pytest测试报告
  20. python 二级考试操作题(一)

热门文章

  1. 基于php的简单聊天系统,基于PHP的网页即时聊天系统的设计与实现
  2. 代号斗罗显示服务器暂未开放,代号:斗罗内测版
  3. Python--数据库
  4. nginx启动、停止、重启命令
  5. 深入理解通信协议----串口(uart)
  6. 微信小程序如何存储数据?
  7. Visual Studio教程
  8. NOIP 2011 Senior 5 - 聪明的质检员
  9. Linux Kernel GFP_KERNEL
  10. Linux下的文件管理