如何找到下载文件的URL?

时间:2016-06-15 15:49:08

标签: http networking google-chrome-devtools wireshark

我正在开发一个Web scraper,我需要从页面下载.pdf文件。我可以从html标记中获取文件名,但无法找到下载文件的完整URL(或请求正文)。

我试图使用chrome和firefox网络流量工具以及wireshark来嗅探流量,但没有成功。我可以看到它向页面本身提供与完全相同的URL的帖子请求,因此我无法理解为什么会发生这种情况。我的猜测是文件名是在POST请求体内发送的,但我也无法在这些工具中找到这些信息。如果我能在正文中看到变量名,我可以创建请求的副本然后获取文件。

我如何获取该信息?

以下是我所谈论的网站:http://www2.trt8.jus.br/consultaprocesso/formulario/ProcessoConjulgado.aspx?sDsTelaOrigem=ListarProcessos.aspx&iNrInstancia=1&sFlTipo=T&iNrProcessoVaraUnica=126&iNrProcessoUnica=1267&iNrProcessoAnoUnica=2010&iNrRegiaoUnica=8&iNrJusticaUnica=5&iNrDigitoUnica=24&iNrProcesso=1267&iNrProcessoAno=2010&iNrProcesso2a=0&iNrProcessoAno2a=0

编辑:对于那些想要做类似事情的人,请看一下这个网站:http://curl.trillworks.com/
它将cURL转换为python请求代码。非常有用

1 个答案:

答案 0 :(得分:1)

用于请求的POST数据是ASP.NET生成的编码内容。它包含链接所在页面的各种状态/会话信息。这使得直接刮取URL变得困难。

您可以通过从Chrome DevTools中的网络标签导出来检查HAR:

Network HAR

__EVENTVALIDATION数据用于确保客户端上引发的事件源自服务器在页面上呈现的控件。

您可以通过首先请求链接页面,然后从响应中提取所需的POST数据(包含页面状态和嵌入的文件请求)来实现您想要的效果,然后使用此信息。这假设服务器在此期间不会使任何会话到期。