【问题标题】:Dealing with pagination in web pages while using jsoup使用jsoup时处理网页中的分页
【发布时间】:2015-01-22 12:24:24
【问题描述】:

我一直在使用 jsoup 来爬取特定网站的网页。 基本上我正在尝试提取所有具有pdf链接的href。 我已经成功地获得了特定页面的所有链接。但是有10个这样的页面。网页使用 javascript _doPostBack() 函数的逻辑导航到其他页面。我如何通过 jsoup 完成此操作。

这就是我现在尝试的方式

Document document = Jsoup.connect(" some website name")
                        .data("__EVENTARGUMENT", __EVENTARGUMENT)
                        .data("__EVENTTARGET", __EVENTTARGET)
                        .data("__EVENTVALIDATION", __EVENTVALIDATION)
                        .data("__VIEWSTATEGENERATOR ", __VIEWSTATEGENERATOR)
                        .cookie("ASP.NET_SessionId", sessionId)
                        .followRedirects(true)
                        .timeout(0)
                        .userAgent(
                            "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                        .post(); 

但我得到一个错误的 url 输出。 我在发送之前已经定义了所有变量。

【问题讨论】:

    标签: java javascript jsoup


    【解决方案1】:

    当我遇到这种问题时,我是如何解决的:

    • 在浏览器中加载页面
    • 在浏览页面时监视浏览器和服务器之间交换的 http 消息(Fiddler、Firebug、Dev Console/Toolbar ...)
    • 识别浏览器和服务器交换的每个字节(标头、cookie 等)
    • 一旦识别出所有单个字节,尝试使用hurl.it 浏览页面(输入标题、cookie、用户代理等)
    • 使用 hurl.it 成功浏览页面后,指示 Jsoup 执行相同操作

    【讨论】:

    • 帮助不大:(
    • @darkHorse 要尝试废弃的网站是什么?
    • @darkHorse 您帖子的代码中缺少一些数据:__VIEWSTATE、__VIEWSTATEENCRYPTED、__EVENTVALIDATION、ctl00$TopMenu$srch。您可能还需要添加 Referer 标头...
    • 谢谢@Stephan。我检查了通过 firebug 发送的所有元素。并通过java代码发送
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2019-04-14
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多