当前位置: 首页 > 软件库 > 应用工具 > 网络爬虫 >

JoBo

下载整个 Web 站点
授权协议 未知
开发语言 Java
所属分类 应用工具、 网络爬虫
软件类型 开源软件
地区 不详
投 递 者 赖渊
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JoBo 是一个用于下载整个 Web 站点的简单工具。它本质是一个 Web Spider。与其它下载工具相比较它的主要优势是能够自动填充 form(如:自动登录)和使用cookies来处理session。JoBo还有灵活的 下载规则(如:通过网页的URL,大小,MIME类型等)来限制下载。

特性:

  • 命令行和图形版本(但是命令行版本需要 重大更新,当前的GUI版本具有更多功能)
  • 从给定的起始文档开始递归搜索所有文档
  • 支持<A> <AREA> <IMG> <FRAME>标记(具有容错功能)
  • 支持机器人排除协议
  • 用户控制的最大搜索深度
  • 可以定义用户代理名称
  • 支持引荐来源标头
  • 支持自动表单处理(JoBo可以使用预定义的值填充字段)
  • Cookie支持
  • XML配置
  • 可以限制使用的带宽
  • 根据mime类型和文档大小允许/拒绝下载(例如,忽略所有图像/ *文件)
  • 通过正则表达式允许/拒绝下载(例如,不要下载/ cgi-bin)
  • 可以将绝对链接转换为相对链接
  • 仅下载比给定年龄更新的文件
  • resume job
  • 想不到Jobo的问题还真多,列举如下: 1、缺省Jobo是用单线程跑的,需要自己扩展实现多线程代码; 2、Jobo里面有个todo和visited列表,分别用于存放待抓取和已访问的task。但是,在多线程模式下,todo里面会出现很多重复的task,也就是visited没有起到过滤重复URL的作用。原因是,虽然task的url可能是重复的,但是task对象的hashcode未必重复,所以往往判断失

  • 其实很简单!Jobo在解析HTML的时候用到了Tidy,但是Jobo引用的Tidy的版本有点旧了,只要去http://sourceforge.net/projects/jtidy/files/下载一个最新版本的包,替换掉Jobo中的Tidy.jar,一切搞定!   另:新版本的Tidy,在解析完页面之后,会将所有link做一下encode,所以如果需要显示这些link中的中文,你还需要用页面返回时

 相关资料
  • 在少数网站中,很少有脚本可能需要一些时间来运行,这会导致网站刮取工作效率低下,或者从刮取器返回的html不完整。如何在网站脚本完全运行后刮取网站。 我在java中使用URL连接,当我从中读取文本时,我得到的HTML是预成熟的(即,我有一个脚本,它有点长,需要一些时间来加载,它会改变文本的颜色,而这不会反映在使用URL连接读取的文本中。

  • 我已经知道如何下载单个文件,但我想使用java从网站下载整个文件夹/目录 来自私有静态字符串文件的url=”http://umsurvey.comlu.com/admin/question/"; to OutputStream output=new FileOutputStream(Environment.getExternalStorageDirectory()“/Question/”;

  • 问题内容: 我想使用scrapy下载整个页面的内容。 使用硒,这很容易: 但是,硒要比沙皮慢得多。 这是一种简单的方法吗? 我想将每个页面的代码保存在不同的文件文本中,而不是另存为csv或json文件。另外,如果在不创建项目的情况下也是可行的,那么对于这样一个简单的任务而言似乎有点过大。 问题答案: 代码将下载此页面并将其保存在文件中 test_scr.py 通过此命令运行

  • 我是Python3新手,我正在尝试在登录网站后下载一个文档。 我有2个网址,可以让我立即登录到网页和下载文件。登录后,以下各项: https://www.xxxcompany.com/login.action?loginname=name 这是我的密码。它肯定不起作用,也不会给我打印状态码。我是否误解了一些概念?请帮我解决这个问题。非常感谢你!

  • 我试图递归地遍历登录到FTP服务器后到达的整个根目录。 我能够连接,我真正想做的就是递归整个结构,下载每个文件和文件夹,并使其与FTP上的结构相同。到目前为止,我拥有的是一种有效的下载方法,它进入服务器并获取我的整个文件结构,这非常棒,只是第一次尝试失败,然后第二次成功。我得到的错误如下: java.io.FileNotFoundException: outout-目录\test\testFile

  • 我需要选择和下载存储在计算机上的许多文件夹,我只能通过远程ssh连接访问这些文件夹。我创建了一个列表(“list.txt”)来只下载我感兴趣的文件夹,我尝试使用一个“for”循环 但是不要阅读我的列表并卸载所有文件夹,我也尝试过 我能做什么?谢了!