如何修复获取 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? 的相关文章

  • 如何使用Spring WebClient进行同步调用?

    Spring Framework in 休息模板 https docs spring io spring framework docs current javadoc api org springframework web client R
  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • Guice 忽略注入构造函数参数上的 @Nullable

    我正在使用 Guice v 3 0 并且有一个值被注入到构造函数中 该值可以为 null 因此我在构造函数中使用 Nullable 来自 javax annotations 注释了该参数 public MyClass Parameter1
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • 您建议使用哪种压缩(GZIP 是最流行的)servlet 过滤器?

    我正在寻找一个用于大容量网络应用程序的 GZIP servlet 过滤器 我不想使用容器特定的选项 要求 能够压缩响应负载 XML Faster 已在大批量应用的生产中得到验证 应适当设置适当内容编码 跨容器移植 可选择解压缩请求 谢谢 我
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有

随机推荐

  • 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