【问题标题】:How can I use wget to save JavaServer HTML pages?如何使用 wget 保存 JavaServer HTML 页面?
【发布时间】:2019-04-27 05:01:21
【问题描述】:

http://casesearch.courts.state.md.us/casesearch/inquirySearchParam.jis

我正在尝试编写一个脚本来抓取马里兰州案件搜索网站上的案卷,该网站有公开记录的法庭案件案卷。它是用于研究的,我的目标是最终拥有一个免费网站,以便根据费用、结果等更轻松地搜索案例。不过遇到了一些麻烦。

当用户首次访问该网站时,他们必须先接受免责声明,然后才能访问任何文档。如果他们尝试通过直接链接访问案卷,他们将被重定向到免责声明。

尝试从新会话中访问此直接链接,您就会明白我的意思了。

http://casesearch.courts.state.md.us/casesearch/inquiryDetail.jis?caseId=C02CV19000081&loc=60&detailLoc=ODYCIVIL

如果我只是直接获取链接,我最终将只保存免责声明。我尝试在浏览器中接受免责声明,然后保存 cookie 并在 wget 中使用它,但这也不起作用。仍然只是重定向并将免责声明保存为 jsp

【问题讨论】:

    标签: jsp web-scraping wget


    【解决方案1】:

    这需要对服务器进行一些测试以确定需要什么。服务器实际上要求您发送特定的 POST 请求才能获取记录。

    对于您提供的链接,所需的 Wget 命令是:

    wget --method=POST --body-data="locationCode=DC&caseId=C02CV19000081&action=Get+Case"  --page-requisites 'http://casesearch.courts.state.md.us/casesearch/inquiryByCaseNum.jis;jsessionid=<Sess-ID>'
    

    简单分解:

    • --method=POST:发送 HTTP POST 请求
    • --body-data="...":这是 POST 请求正文。 3个参数很明显
    • --page-requisites:下载所需的任何其他页面。在这种情况下,它将下载正确的 CSS 文件
    • URL:这是页面的 URL。如果您仔细观察,它是搜索页面的 URL 以及一个额外的段。这是会话 ID。为此,请在 Firefox 中接受免责声明,然后保存 cookie。 cookie 的值是会话 ID。将其添加到 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-27
      • 2017-02-19
      • 1970-01-01
      • 2010-11-22
      • 2021-01-10
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      相关资源
      最近更新 更多