零、目标

使用Java开发爬虫,爬取Twitter状态下评论中的图片和视频,并将其保存到本地。

一、调研爬虫框架

Twitter4J: https://github.com/Twitter4J/Twitter4J

这是一个基于Java开发的框架,使用Twitter官方API接口。在使用之前,需要使用自己的账号申请秘钥。

WebMagic: https://github.com/code4craft/webmagic

这是一个由国人开发的Java爬虫框架,拥有很好的中文文档:http://webmagic.io/docs/zh/

此外,还有一些使用WebMagic开发的项目,地址为:https://github.com/topics/webmagic

在这里,有一个使用WebMagic编写的Twitter爬虫TwitterCrawler,其地址为:https://github.com/casolxia/TwitterCrawler。因此,我选择基于这个爬虫进行二次开发。

二、爬虫使用方法与问题记录

接下来,将TwitterCrawler Fork到我的Github仓库:https://github.com/wayss000/TwitterCrawler,然后将其clone到本地并进行启动调试。

启动遇到的问题记录:

问题1:无法访问org.apache.http.annotation.ThreadSafe。

原因:参考博客https://blog.csdn.net/lvyuan1234/article/details/103774766,是因为ThreadSafe这个类在httpcore-4.4.4.jar以后就被去掉了,而这里引用的是httpcore-4.4.14.jar。

解决方法:将httpcore版本改为4.4.4。

问题2:报错:javax.net.ssl.SSLException: Received fatal alert: protocol_version

原因:参考https://stackoverflow.com/questions/16541627/javax-net-ssl-sslexception-received-fatal-alert-protocol-version,是因为在Java 1.8中,默认的TLS协议是v1.2。在Java 1.6和1.7中,默认的协议是已过时的TLS1.0。我在Java 1.8上遇到了这个错误,因为URL使用了旧的TLS1.0(如你所见 ClientHello, TLSv1)。为了解决这个错误,你需要重写Java 1.8的默认设置。

解决方法:将WebMagic克隆到本地,运行mvn install webmagic,然后在TwitterCrawler中引用本地编译的WebMagic版本,而不是pom.xml中的0.7.3版本。

问题3:Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

原因:@SpringBootApplication annotation missing in your spring boot starter class.

解法:在启动类上,增加@SpringBootApplication注解

问题4:Error creating bean with name ‘dataSource’ defined in class path resource

原因:springboot缺少数据源的配置。

解法:之前TwitterCrawler的项目用了数据库保存爬取的数据,但我这里不需要,因此删除与数据源相关的配置。

三、开发爬取Twitter图片、视频的代码

这里遇到了阻塞性问题:”Twitter使用JavaScript来生成其内容或者进行重定向,那么爬虫程序会收到“不支持JavaScript”的错误信息。这是因为爬虫程序默认情况下不会执行JavaScript代码,而是只会读取HTML文档中的静态内容。如果网站的内容是由JavaScript生成的,那么爬虫程序将无法正确解析这些内容。解决这个问题的方法是使用一个支持JavaScript执行的爬虫框架,比如Selenium或Puppeteer。这些框架可以模拟一个真实的浏览器环境,执行JavaScript代码并获取生成的内容。不过,使用这些框架会增加程序的复杂性和运行时间。”

暂时放弃自己开发的想法。

四、整理一些知识

写web自动化测试代码,一般用的技术框架?

  • 测试HTTP接口的话:Jenkins+testng+httpclinet
  • 测试UI的话:selenium
  • 测试APPUI的话:appium

另外发现tampermonkey脚本也有下载Twitter视频的:

  • https://greasyfork.org/en/scripts/404515-twitter-download-video/code
  • https://greasyfork.org/en/scripts/423001-twitter-media-downloader

Java开发Twitter爬虫抓取图片和视频并保存到本地相关推荐

  1. java抓取图片_Java实现的爬虫抓取图片并保存操作示例

    本文实例讲述了Java实现的爬虫抓取图片并保存操作.分享给大家供大家参考,具体如下: 这是我参考了网上一些资料写的第一个java爬虫程序 本来是想获取煎蛋网无聊图的图片,但是网络返回码一直是503,所 ...

  2. Java 将知乎问题下所有的回答保存到本地

    Java将知乎问题下所有的回答保存到本地 使用jdk提供的相关api可以获取到网页中的内容,而知乎存放问题回答的地方又是可以通过url的方式被他人直接访问到的. https://www.zhihu.c ...

  3. Fiddler 抓包指定文件格式 并保存在本地

    Fiddler 抓包指定文件格式 并保存在本地 打开 fiddler .打开规则 找到函数 编写保存代码 Fiddler 抓包并保存图片到本地: static function OnBeforeRes ...

  4. node.js抓取网络图片保存到本地,node.js抓取防盗链网络图片保存到本地

    node.js抓取网络图片保存到本地,node.js抓取防盗链网络图片保存到本地 使用模块request.fs,request模块在npm里平均月下载量超过3000W次,那是相当的牛逼. node版本 ...

  5. java爬移动端搜索引擎_尝试java开发搜索引擎爬虫

    大家应该也知道百度搜索结果都会有一个百度快照,这是通过缓存服务器调用出来的页面信息,这样我们就可以通过百度快照快速的浏览网页信息,那么这个缓存服务器跟爬虫又有什么联系么? 我们来大致了解一下爬虫的基本 ...

  6. python爬虫抓取图片-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  7. 【OpenCV 4开发详解】图像与视频的保存

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  8. 将.m3u8转换为视频文件保存到本地

    实现将一直的视频流文件保存到本地,需要 安装ffmpeg 视频流文件地址 使用ffmpeg安装包中的ffplay.exe实现视频的播放: ffplay http://edge.linknetott.s ...

  9. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

最新文章

  1. 类名.class的含义。
  2. yolov5 soft_nms cluster_nms,cluster_SPM_nms,cluster_diounms,cluster_SPM_dist_nms,diou_nms
  3. 用于Web开发的8 个最好的跨平台编辑器
  4. 在Spring中使用JDBCJobStore配置Quartz
  5. vue数组中对象属性变化页面不渲染问题
  6. 在已有数据的linkedList和arrayList集合中在中间位置新插入一条数据谁更快
  7. mybatis 逆向工程生成的 Example 类的使用
  8. SCCM2007 R2的部署前准备,SCCM系列之一
  9. 如何在PHP中实现链式方法调用
  10. type与instance区别
  11. FPGA的I2S采集数据处理
  12. BIM技术在工程成本管控中有哪些优势
  13. 火车票软件哪个好用_抢火车票软件哪个好 2019哪个软件抢火车票成功率高
  14. text生成pdf之ctexwineditmiktexgbk2uni的安装使用方法
  15. Pomodoro技术的失败如何使我成为2倍更好的程序员
  16. MT6737芯片技术资料集锦下载
  17. chrome 油猴 电脑或者手机click()失效,解决
  18. Greatest Parents Ligh OJ1128
  19. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
  20. web前端电影项目作业源码 大学生影视主题网页制作电影网页设计模板 学生静态网页作业成品 dreamweaver电影HTML网站制作

热门文章

  1. GeoServer WFS 多图层几何查询
  2. GeoServer中WMS、WFS的区别和请求规范
  3. xmind思维导图怎么把字体变大_思维导图软件xmind如何调整主题之间的间距
  4. 《恶意代码分析实战》第3章 动态分析基础技术(课后实验Lab 3)
  5. vue 如何控制组件初始与销毁_vue组件什么条件下需要摧毁?
  6. Leetcode2126. 摧毁小行星
  7. intel伽利略初次使用体验
  8. 电商分账系统重要吗,平台应该如何选择分账服务商呢?
  9. 有关血型的限制级秘密 (O型)
  10. 关于linux上安装nginx服务器,win10中IE不能访问,谷歌可以访问的问题