如何修复获取 URL 时出现的 HTTP 错误。爬行时java中的Status = 500?

2024-01-19

我试图从评论页面抓取用户对 imdb 电影的评分: (我的数据库中的电影数量约为 600,000)。我使用jsoup来解析页面,如下所示:(抱歉,我没有在这里写完整的代码,因为它太长了)

try {
  //connecting to mysql db
  ResultSet res = st
        .executeQuery("SELECT id, title, production_year " +
                "FROM title " +
                "WHERE kind_id =1 " +
                "LIMIT 0 , 100000");
  while (res.next()){
       .......
       .......
     String baseUrl = "http://www.imdb.com/search/title?release_date=" +
            ""+year+","+year+"&title="+movieName+"" +
            "&title_type=feature,short,documentary,unknown";
    Document doc = Jsoup.connect(baseUrl)
            .userAgent("Mozilla")
            .timeout(0).get();
      .....
      ..... 
//insert ratings into database
      ...

我对数据库中的前 100 部电影、前 500 部电影以及前 2000 部电影进行了测试,效果很好。但问题是,当我测试 100,000 部电影时,我得到了这个错误:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=500,   URL=http://www.imdb.com/search/title?release_date=1899,1899&title='Columbia'%20Close%20to%20the%20Wind&title_type=feature,short,documentary,unknown
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:449)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:424)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:178)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:167)
at imdb.main(imdb.java:47)

我搜索了很多这个错误,发现这是一个服务器端错误,错误号为 5xx。

然后我决定设置一个条件,当连接失败时,它会再尝试 2 次,然后如果仍然无法连接,则不会停止并转到下一个网址。因为我是java新手,所以我尝试搜索类似的问题并在stackoverflow中阅读这些答案:

从网站提取数据时出现异常 https://stackoverflow.com/questions/12984961/exceptions-while-i-am-extracting-data-from-a-web-site

Jsoup无法连接网站时的错误处理 https://stackoverflow.com/questions/19619003/jsoup-error-handling-when-couldnt-connect-to-website?rq=1

处理连接错误和 JSoup https://stackoverflow.com/questions/10245519/handling-connection-errors-and-jsoup

但是,当我按照他们的建议尝试使用“Connection.Response”时,它告诉我“Connection.Response 无法解析为类型”。

如果有人可以帮助我,我很感激,因为我只是一个新手,我知道这可能很简单,但我不知道如何解决它。


好吧,我可以通过添加“ignoreHttpError(true)”来修复 http 错误状态 500,如下所示:

org.jsoup.Connection con = Jsoup.connect(baseUrl).userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21");
con.timeout(180000).ignoreHttpErrors(true).followRedirects(true);
Response resp = con.execute();
Document doc = null;

if (resp.statusCode() == 200) {
    doc = con.get();
......

希望可以帮助那些有同样错误的人。

然而,在爬取了22907部电影的评论页面(大约12个小时)后,我又得到了另一个错误:
“读取超时”。

我很感激任何修复此错误的建议。


将我的评论升级为答案:

Connection.Response is org.jsoup.Connection.Response

允许document仅当存在有效的 http 代码 (200) 时,才将调用分为 3 部分;Connection, Response, Document

因此,上面的代码部分被修改为:

while (res.next()){
       .......
       .......
       String baseUrl = "http://www.imdb.com/search/title?release_date=" + ""
                + year + "," + year + "&title=" + movieName + ""
                + "&title_type=feature,short,documentary,unknown";
       Connection con = Jsoup.connect(baseUrl).userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21").timeout(10000);
       Connection.Response resp = con.execute();
       Document doc = null;
        if (resp.statusCode() == 200) {
            doc = con.get();
                    ....
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复获取 URL 时出现的 HTTP 错误。爬行时java中的Status = 500? 的相关文章

  • 如何克服原语按值传递的事实

    我有一段很长的代码来计算两个值 doubles 对我来说 我在几个地方使用了这段代码 为了坚持 DRY 原则 我应该将这段代码重构为一个很好的单元测试方法 但是我不能让它返回两个双精度数 而双精度数是原始的 因此不能按值传递和操作 我能想到
  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • 正则表达式拆分数字和字母组,不带空格

    如果我有一个像 11E12C108N 这样的字符串 它是字母组和数字组的串联 如何在中间没有分隔符空格字符的情况下分割它们 例如 我希望分割结果为 tokens 0 11 tokens 1 E tokens 2 12 tokens 3 C
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • 在 Netbeans 8 上配置 JBoss EAP 的问题

    我已经下载了 JBoss EAP 7 并正在 Netbeans 8 上配置它 我已经到达向导 实例属性 其中要求从选择框中选择 域 当我打开选择框时 它是空的 没有什么可以选择的 因此 完成 按钮也处于非活动状态 这使得无法完成配置 我通过
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我

随机推荐

  • C# 中的外部 IP 地址

    在 C 中获取外部 IP 地址的最简单方法是什么 框架内没有内置的方法来执行此操作 因为很难确定外部 公共 IP 地址是什么 当然 这是假设您的 IP 在某个网关后面经过 NAT 一种方法是抓取类似的网站http www whatismyi
  • 解释错误:ISO C++ 禁止声明没有类型的“Personlist”

    我有一个类将处理我之前创建的另一个类的对象数组 效果很好 当我尝试创建列表类的对象时出现问题 这是列表类的标题 ifndef personlistH define personlistH include Person h include
  • 如何从当前月份中选择当前日期

    我想检索当月 1 30 之间的数据 我正在使用 MSACCESS Dbase 来执行此操作 下面是我正在尝试的查询 SELECT count usercategory as category count usercategory FROM
  • VS Code 扩展安全如何处理?

    我已经使用 VS Code 一年左右了 我不知道 VS Code Extension 安全性是如何处理的 我对这样的事情感到震惊 Markdown 预览增强 https marketplace visualstudio com items
  • CRA + React Leaflet:编译失败

    我刚刚开始一个全新的项目create react app并设置react leaflet正如他们的文档所建议的here https react leaflet js org docs start installation 我正在尝试使用这个
  • pyspark:自动填充隐式缺失值

    我有一个数据框 user day amount a 2 10 a 1 14 a 4 5 b 1 4 你看 最大值day是4 最小值是1 我要填0 for amount列中所有用户的所有缺失天数 因此上面的数据框将变为 user day am
  • Safari 和 iOS 上的 Html5(音频)

    我正在开发一款 Web 应用程序 但与 Apple 设备和 PC 上的 Safari 浏览器存在兼容性问题 Html5 音频标签
  • 假人的 Getters \ Setters

    我一直在尝试了解 getter 和 setter 但它没有被理解 我读过JavaScript Getter 和 Setter http ejohn org blog javascript getters and setters and 定义
  • 可靠地验证 JWS 证书链和域

    我正在 Node JS 中编写后端代码来验证来自 Google SafetyNet API 的 JWS 我很惊讶没有为此找到现成的模块 因此我开始使用可用的库来研究 JWS 的一些简单验证 首先 谷歌表示需要执行以下步骤 从 JWS 消息中
  • 如何在Windows服务器上运行html文件中的php代码?

    我已使用 htaccess 文件和以下代码AddType 应用程序 x httpd php html htm 它在本地工作正常 但当我将文件上传到服务器上时 它工作不正常 我的所有页面都有 html 扩展名 您需要添加到 PHP exe 的
  • 递归泛型类型

    是否可以在 C 中定义引用自身的泛型类型 例如 我想定义一个 Dictionary 将其类型保存为 TValue 对于层次结构 Dictionary
  • echo 输出与预期的格式化输出不同

    I m using the following formatting for echo 它应该输出粗体和下划线的文本 但不是将其设置为粗体 而是提供 更亮 的颜色变体 并将带下划线的代码 4 视为青色 从而产生浅青色文本 我在 Window
  • 为什么 Enumerator.MoveNext 在与 using 和 async-await 一起使用时不能按我的预期工作?

    我想通过一个枚举List
  • document.title 中的播放符号 (▶) 被压扁

    添加到问题为什么 的 HTML 符号在 document title 中不起作用 https stackoverflow com questions 16930905 why does the html symbol for not wor
  • 使用外部 Python 程序在 OpenOffice 上加载文档

    我正在尝试创建一个 python 程序 使用 pyUNO 来对 OpenOffice 计算表进行一些更改 我之前已在 接受 模式下启动 OpenOffice 以便能够从外部程序进行连接 显然 应该很简单 import uno get the
  • KeyError:

    我一直很难处理烧瓶中的会话 自从我在本地环境中管理应用程序以来 一切都运行良好 包括烧瓶会话 但是当我已经在渲染中托管它时 我总是在每条路线中收到此错误 55 ERROR Error handling request valle de gu
  • 使用 Protractor 检查 DOM 元素中的文本

    这是我在使用 Protractor 测试 Angular 应用程序时尝试做的事情 我想获得某个元素 有点像这样 div class someClass p textFromBoundModel p div 然后获取它的 html 并检查它是
  • 如何在TTabcontrol中隐藏多个选项卡

    我的程序有 3 个下拉菜单和 1 个 ttabcontrol 其中有 5 个选项卡 我需要知道的是 如果下拉菜单选择了特定项目 如何隐藏所有选项卡并再次设置它们的可见性 例如 我的下拉菜单有索引项 A B C A B A C TabCont
  • MySQL 中的数据库注释/描述

    是否可以在 MySQL 中保存有关数据库的额外文本信息 注释 描述等 就像是 SELECT TABLE COMMENT FROM information schema TABLES 但对于数据库 而不是表 不 你不能 Mysql 只允许对表
  • 如何修复获取 URL 时出现的 HTTP 错误。爬行时java中的Status = 500?

    我试图从评论页面抓取用户对 imdb 电影的评分 我的数据库中的电影数量约为 600 000 我使用jsoup来解析页面 如下所示 抱歉 我没有在这里写完整的代码 因为它太长了 try connecting to mysql db Resu